{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Transfer learning traffic sign classifier"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 0. General"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true,
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "import os\n",
    "import numpy as np\n",
    "import tensorflow as tf\n",
    "from tensorflow_vgg import vgg16\n",
    "from tensorflow_vgg import utils"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1. Load data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(47429, 32, 32, 3) (47429,)\n"
     ]
    }
   ],
   "source": [
    "import pickle\n",
    "\n",
    "training_file = \"data/train.p\"\n",
    "testing_file = \"data/test.p\"\n",
    "\n",
    "with open(training_file, mode='rb') as f:\n",
    "    train = pickle.load(f)\n",
    "with open(testing_file, mode='rb') as f:\n",
    "    test = pickle.load(f)\n",
    "    \n",
    "# Combine together since we are going to create train/val/test sets after VGG looks at it\n",
    "# Is that bad?\n",
    "\n",
    "X, y = np.append(train['features'], test['features'], axis=0), np.append(train['labels'], test['labels'])\n",
    "#X_test, y_test = test['features'], test['labels']\n",
    "\n",
    "#X = X[:2000]\n",
    "#y = y[:2000]\n",
    "print(X.shape, y.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "5\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x21c6e74fcc0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import random\n",
    "import scipy\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "\n",
    "index = random.randint(1, len(X))\n",
    "image = X[index].squeeze()\n",
    "image = scipy.misc.imresize(image, [224, 224])\n",
    "plt.imshow(image)\n",
    "print(y[index])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 1.2 Classes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['Speed limit (20km/h)' 'Speed limit (30km/h)' 'Speed limit (50km/h)'\n",
      " 'Speed limit (60km/h)' 'Speed limit (70km/h)' 'Speed limit (80km/h)'\n",
      " 'End of speed limit (80km/h)' 'Speed limit (100km/h)'\n",
      " 'Speed limit (120km/h)' 'No passing'\n",
      " 'No passing for vehicles over 3.5 metric tons'\n",
      " 'Right-of-way at the next intersection' 'Priority road' 'Yield' 'Stop'\n",
      " 'No vehicles' 'Vehicles over 3.5 metric tons prohibited' 'No entry'\n",
      " 'General caution' 'Dangerous curve to the left'\n",
      " 'Dangerous curve to the right' 'Double curve' 'Bumpy road' 'Slippery road'\n",
      " 'Road narrows on the right' 'Road work' 'Traffic signals' 'Pedestrians'\n",
      " 'Children crossing' 'Bicycles crossing' 'Beware of ice/snow'\n",
      " 'Wild animals crossing' 'End of all speed and passing limits'\n",
      " 'Turn right ahead' 'Turn left ahead' 'Ahead only' 'Go straight or right'\n",
      " 'Go straight or left' 'Keep right' 'Keep left' 'Roundabout mandatory'\n",
      " 'End of no passing' 'End of no passing by vehicles over 3.5 metric tons']\n"
     ]
    }
   ],
   "source": [
    "from pandas.io.parsers import read_csv\n",
    "classes = read_csv(\"signnames.csv\").values[:, 1]\n",
    "print(classes)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2. Pre train with VGG"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "batch_size = 64\n",
    "codes_list = []\n",
    "labels = []\n",
    "batch = np.empty([0, 224, 224, 3])\n",
    "codes = None"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#tf.reset_default_graph()\n",
    "\n",
    "with tf.Session() as sess:\n",
    "    my_vgg = vgg16.Vgg16()\n",
    "    input_ = tf.placeholder(tf.float32, [None, 224, 224, 3])\n",
    "    \n",
    "    with tf.name_scope(\"content_vgg\"):\n",
    "        my_vgg.build(input_)\n",
    "    \n",
    "    len_ = len(X)\n",
    "    for i, image in enumerate(X):\n",
    "        image = scipy.misc.imresize(image, [224, 224])\n",
    "        batch = np.append(batch, [image], axis=0)\n",
    "        # print(batch.shape)\n",
    "        \n",
    "        labels.append(y[i])\n",
    "\n",
    "        # Running the batch through the network to get the codes\n",
    "        if i % batch_size == 0 or i == len_ - 1:\n",
    "\n",
    "            # Get the values from the relu6 layer of the VGG network\n",
    "            feed_dict = {input_ : batch}\n",
    "            print(batch.shape)\n",
    "\n",
    "            # KEY!!!!            \n",
    "            codes_batch = sess.run(my_vgg.relu6, feed_dict = feed_dict)\n",
    "\n",
    "            # Here I'm building an array of the codes\n",
    "            if codes is None:\n",
    "                codes = codes_batch\n",
    "            else:\n",
    "                codes = np.concatenate((codes, codes_batch))\n",
    "            # Reset to start building the next batch\n",
    "            batch = np.empty([0, 224, 224, 3])\n",
    "            print('{:.2f} % of images processed'.format(i/len(X)*100))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": true,
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "# write codes to file\n",
    "with open('codes', 'w') as f:\n",
    "    codes.tofile(f)  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(51839, 4096) (51839,)\n"
     ]
    }
   ],
   "source": [
    "print(codes.shape, y.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3. Classifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(51839, 4096)\n"
     ]
    }
   ],
   "source": [
    "# read codes and labels from file\n",
    "import csv\n",
    "\n",
    "with open('codes') as f:\n",
    "    codes = np.fromfile(f, dtype=np.float32)\n",
    "    codes = codes.reshape((len(y), -1))\n",
    "\n",
    "    print(codes.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "###  Validation set"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(51839, 43)\n"
     ]
    }
   ],
   "source": [
    "from sklearn.preprocessing import LabelBinarizer\n",
    "\n",
    "labelBinarizer = LabelBinarizer()\n",
    "labelBinarizer.fit(y)\n",
    "labels_vecs = labelBinarizer.transform(y)\n",
    "print(labels_vecs.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": true,
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "from sklearn.model_selection import StratifiedShuffleSplit\n",
    "\n",
    "sss = StratifiedShuffleSplit(n_splits=1, test_size=.2)\n",
    "i, j = next( sss.split(codes, y) )\n",
    "h = len(j) // 2\n",
    "j, k = j[:h], j[h: ]   # Validation 50%\n",
    "# end j at half of j and start k at half of j\n",
    "\n",
    "train_x, train_y = codes[i], labels_vecs[i]\n",
    "val_x, val_y = codes[j], labels_vecs[j]\n",
    "test_x, test_y =  codes[k], labels_vecs[k]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train shapes (x, y): (41471, 4096) (41471, 43)\n",
      "Validation shapes (x, y): (5184, 4096) (5184, 43)\n",
      "Test shapes (x, y): (5184, 4096) (5184, 43)\n"
     ]
    }
   ],
   "source": [
    "print(\"Train shapes (x, y):\", train_x.shape, train_y.shape)\n",
    "print(\"Validation shapes (x, y):\", val_x.shape, val_y.shape)\n",
    "print(\"Test shapes (x, y):\", test_x.shape, test_y.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Batches!\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": true,
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "def get_batches(x, y, n_batches=10):\n",
    "    \"\"\" Return a generator that yields batches from arrays x and y. \"\"\"\n",
    "    batch_size = len(x)//n_batches\n",
    "    \n",
    "    for ii in range(0, n_batches*batch_size, batch_size):\n",
    "        # If we're not on the last batch, grab data with size batch_size\n",
    "        if ii != (n_batches-1)*batch_size:\n",
    "            X, Y = x[ii: ii+batch_size], y[ii: ii+batch_size] \n",
    "        # On the last batch, grab the rest of the data\n",
    "        else:\n",
    "            X, Y = x[ii:], y[ii:]\n",
    "        # I love generators\n",
    "        yield X, Y"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Classifier layers"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": true,
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "inputs_ = tf.placeholder(tf.float32, shape=[None, codes.shape[1]])\n",
    "labels_ = tf.placeholder(tf.int64, shape=[None, 43])\n",
    "\n",
    "l_1 = tf.contrib.layers.fully_connected(inputs_, 4096)\n",
    "\n",
    "#drop_out = tf.nn.dropout(l_1, .2)\n",
    "\n",
    "# Add tf.image.adjust_brightness etc. here\n",
    "    \n",
    "logits = tf.contrib.layers.fully_connected(l_1, 43, activation_fn=None)\n",
    "\n",
    "cross_entropy = tf.nn.softmax_cross_entropy_with_logits(labels=labels_, \n",
    "                                                        logits=logits)\n",
    "\n",
    "cost = tf.reduce_mean( cross_entropy )\n",
    "\n",
    "optimizer = tf.train.AdamOptimizer().minimize(cost)\n",
    "\n",
    "# Operations for validation/test accuracy\n",
    "predicted = tf.nn.softmax(logits)\n",
    "correct_pred = tf.equal(tf.argmax(predicted, 1), tf.argmax(labels_, 1))\n",
    "accuracy = tf.reduce_mean(tf.cast(correct_pred, tf.float32))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 4. Training"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "saver = tf.train.Saver()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 0 / 100 Iteration: 1 Train loss: 1379.8046875\n",
      "Epoch: 0 / 100 Iteration: 2 Train loss: 4765.2509766\n",
      "Epoch: 0 / 100 Iteration: 3 Train loss: 6956.6860352\n",
      "Epoch: 0 / 100 Iteration: 4 Train loss: 8813.9082031\n",
      "Epoch: 0 / 100 Iteration: 5 Train loss: 9791.2363281\n",
      "Epoch: 0 / 100 Iteration: 5  Validation Acc: 0.23476\n",
      "Epoch: 0 / 100 Iteration: 6 Train loss: 10283.0888672\n",
      "Epoch: 0 / 100 Iteration: 7 Train loss: 10644.9296875\n",
      "Epoch: 0 / 100 Iteration: 8 Train loss: 10572.6826172\n",
      "Epoch: 0 / 100 Iteration: 9 Train loss: 9830.2187500\n",
      "Epoch: 0 / 100 Iteration: 10 Train loss: 8850.6611328\n",
      "Epoch: 0 / 100 Iteration: 10  Validation Acc: 0.27932\n",
      "Epoch: 1 / 100 Iteration: 11 Train loss: 7628.3881836\n",
      "Epoch: 1 / 100 Iteration: 12 Train loss: 6372.3486328\n",
      "Epoch: 1 / 100 Iteration: 13 Train loss: 5940.6425781\n",
      "Epoch: 1 / 100 Iteration: 14 Train loss: 5759.1464844\n",
      "Epoch: 1 / 100 Iteration: 15 Train loss: 4661.9814453\n",
      "Epoch: 1 / 100 Iteration: 15  Validation Acc: 0.40818\n",
      "Epoch: 1 / 100 Iteration: 16 Train loss: 3723.6027832\n",
      "Epoch: 1 / 100 Iteration: 17 Train loss: 3321.8186035\n",
      "Epoch: 1 / 100 Iteration: 18 Train loss: 2629.1166992\n",
      "Epoch: 1 / 100 Iteration: 19 Train loss: 2151.4672852\n",
      "Epoch: 1 / 100 Iteration: 20 Train loss: 1791.8607178\n",
      "Epoch: 1 / 100 Iteration: 20  Validation Acc: 0.49730\n",
      "Epoch: 2 / 100 Iteration: 21 Train loss: 1446.9636230\n",
      "Epoch: 2 / 100 Iteration: 22 Train loss: 1051.1236572\n",
      "Epoch: 2 / 100 Iteration: 23 Train loss: 856.6362915\n",
      "Epoch: 2 / 100 Iteration: 24 Train loss: 761.6478882\n",
      "Epoch: 2 / 100 Iteration: 25 Train loss: 583.2892456\n",
      "Epoch: 2 / 100 Iteration: 25  Validation Acc: 0.55478\n",
      "Epoch: 2 / 100 Iteration: 26 Train loss: 510.9100952\n",
      "Epoch: 2 / 100 Iteration: 27 Train loss: 485.2467651\n",
      "Epoch: 2 / 100 Iteration: 28 Train loss: 479.6009216\n",
      "Epoch: 2 / 100 Iteration: 29 Train loss: 413.5351257\n",
      "Epoch: 2 / 100 Iteration: 30 Train loss: 322.5354919\n",
      "Epoch: 2 / 100 Iteration: 30  Validation Acc: 0.60320\n",
      "Epoch: 3 / 100 Iteration: 31 Train loss: 230.2738647\n",
      "Epoch: 3 / 100 Iteration: 32 Train loss: 167.0166016\n",
      "Epoch: 3 / 100 Iteration: 33 Train loss: 154.0278320\n",
      "Epoch: 3 / 100 Iteration: 34 Train loss: 159.1499634\n",
      "Epoch: 3 / 100 Iteration: 35 Train loss: 146.5158386\n",
      "Epoch: 3 / 100 Iteration: 35  Validation Acc: 0.62944\n",
      "Epoch: 3 / 100 Iteration: 36 Train loss: 135.4810181\n",
      "Epoch: 3 / 100 Iteration: 37 Train loss: 103.9752808\n",
      "Epoch: 3 / 100 Iteration: 38 Train loss: 88.0659637\n",
      "Epoch: 3 / 100 Iteration: 39 Train loss: 79.5364990\n",
      "Epoch: 3 / 100 Iteration: 40 Train loss: 69.8787231\n",
      "Epoch: 3 / 100 Iteration: 40  Validation Acc: 0.71393\n",
      "Epoch: 4 / 100 Iteration: 41 Train loss: 58.7446060\n",
      "Epoch: 4 / 100 Iteration: 42 Train loss: 53.3418770\n",
      "Epoch: 4 / 100 Iteration: 43 Train loss: 47.8285675\n",
      "Epoch: 4 / 100 Iteration: 44 Train loss: 45.6116295\n",
      "Epoch: 4 / 100 Iteration: 45 Train loss: 40.7339859\n",
      "Epoch: 4 / 100 Iteration: 45  Validation Acc: 0.74711\n",
      "Epoch: 4 / 100 Iteration: 46 Train loss: 33.8032990\n",
      "Epoch: 4 / 100 Iteration: 47 Train loss: 31.6377754\n",
      "Epoch: 4 / 100 Iteration: 48 Train loss: 25.5883369\n",
      "Epoch: 4 / 100 Iteration: 49 Train loss: 26.1163368\n",
      "Epoch: 4 / 100 Iteration: 50 Train loss: 23.1837120\n",
      "Epoch: 4 / 100 Iteration: 50  Validation Acc: 0.77103\n",
      "Epoch: 5 / 100 Iteration: 51 Train loss: 21.9277687\n",
      "Epoch: 5 / 100 Iteration: 52 Train loss: 18.3005333\n",
      "Epoch: 5 / 100 Iteration: 53 Train loss: 16.9674873\n",
      "Epoch: 5 / 100 Iteration: 54 Train loss: 17.5836067\n",
      "Epoch: 5 / 100 Iteration: 55 Train loss: 15.6943407\n",
      "Epoch: 5 / 100 Iteration: 55  Validation Acc: 0.79012\n",
      "Epoch: 5 / 100 Iteration: 56 Train loss: 12.8966599\n",
      "Epoch: 5 / 100 Iteration: 57 Train loss: 13.5435925\n",
      "Epoch: 5 / 100 Iteration: 58 Train loss: 11.7335777\n",
      "Epoch: 5 / 100 Iteration: 59 Train loss: 13.0350599\n",
      "Epoch: 5 / 100 Iteration: 60 Train loss: 10.7954702\n",
      "Epoch: 5 / 100 Iteration: 60  Validation Acc: 0.82350\n",
      "Epoch: 6 / 100 Iteration: 61 Train loss: 9.2538939\n",
      "Epoch: 6 / 100 Iteration: 62 Train loss: 8.8458681\n",
      "Epoch: 6 / 100 Iteration: 63 Train loss: 8.2714338\n",
      "Epoch: 6 / 100 Iteration: 64 Train loss: 9.8051577\n",
      "Epoch: 6 / 100 Iteration: 65 Train loss: 8.2516632\n",
      "Epoch: 6 / 100 Iteration: 65  Validation Acc: 0.83719\n",
      "Epoch: 6 / 100 Iteration: 66 Train loss: 7.7083168\n",
      "Epoch: 6 / 100 Iteration: 67 Train loss: 7.2071848\n",
      "Epoch: 6 / 100 Iteration: 68 Train loss: 6.5395436\n",
      "Epoch: 6 / 100 Iteration: 69 Train loss: 7.9346657\n",
      "Epoch: 6 / 100 Iteration: 70 Train loss: 6.5559931\n",
      "Epoch: 6 / 100 Iteration: 70  Validation Acc: 0.85417\n",
      "Epoch: 7 / 100 Iteration: 71 Train loss: 5.5350623\n",
      "Epoch: 7 / 100 Iteration: 72 Train loss: 5.7071114\n",
      "Epoch: 7 / 100 Iteration: 73 Train loss: 5.5363541\n",
      "Epoch: 7 / 100 Iteration: 74 Train loss: 5.6971002\n",
      "Epoch: 7 / 100 Iteration: 75 Train loss: 4.8748169\n",
      "Epoch: 7 / 100 Iteration: 75  Validation Acc: 0.86323\n",
      "Epoch: 7 / 100 Iteration: 76 Train loss: 5.0552235\n",
      "Epoch: 7 / 100 Iteration: 77 Train loss: 4.7776895\n",
      "Epoch: 7 / 100 Iteration: 78 Train loss: 4.1172171\n",
      "Epoch: 7 / 100 Iteration: 79 Train loss: 4.6439509\n",
      "Epoch: 7 / 100 Iteration: 80 Train loss: 4.0249310\n",
      "Epoch: 7 / 100 Iteration: 80  Validation Acc: 0.86825\n",
      "Epoch: 8 / 100 Iteration: 81 Train loss: 4.0438924\n",
      "Epoch: 8 / 100 Iteration: 82 Train loss: 4.2893252\n",
      "Epoch: 8 / 100 Iteration: 83 Train loss: 4.0966005\n",
      "Epoch: 8 / 100 Iteration: 84 Train loss: 4.1596098\n",
      "Epoch: 8 / 100 Iteration: 85 Train loss: 3.3707807\n",
      "Epoch: 8 / 100 Iteration: 85  Validation Acc: 0.87616\n",
      "Epoch: 8 / 100 Iteration: 86 Train loss: 3.5237863\n",
      "Epoch: 8 / 100 Iteration: 87 Train loss: 3.1631601\n",
      "Epoch: 8 / 100 Iteration: 88 Train loss: 2.8590038\n",
      "Epoch: 8 / 100 Iteration: 89 Train loss: 3.3230810\n",
      "Epoch: 8 / 100 Iteration: 90 Train loss: 2.7759690\n",
      "Epoch: 8 / 100 Iteration: 90  Validation Acc: 0.88194\n",
      "Epoch: 9 / 100 Iteration: 91 Train loss: 2.9377906\n",
      "Epoch: 9 / 100 Iteration: 92 Train loss: 3.0510025\n",
      "Epoch: 9 / 100 Iteration: 93 Train loss: 3.0644281\n",
      "Epoch: 9 / 100 Iteration: 94 Train loss: 2.8802328\n",
      "Epoch: 9 / 100 Iteration: 95 Train loss: 2.4892728\n",
      "Epoch: 9 / 100 Iteration: 95  Validation Acc: 0.88484\n",
      "Epoch: 9 / 100 Iteration: 96 Train loss: 2.6154523\n",
      "Epoch: 9 / 100 Iteration: 97 Train loss: 2.3674204\n",
      "Epoch: 9 / 100 Iteration: 98 Train loss: 2.0932178\n",
      "Epoch: 9 / 100 Iteration: 99 Train loss: 2.4192302\n",
      "Epoch: 9 / 100 Iteration: 100 Train loss: 2.1121697\n",
      "Epoch: 9 / 100 Iteration: 100  Validation Acc: 0.88985\n",
      "Epoch: 10 / 100 Iteration: 101 Train loss: 2.2669759\n",
      "Epoch: 10 / 100 Iteration: 102 Train loss: 2.3671613\n",
      "Epoch: 10 / 100 Iteration: 103 Train loss: 2.3031960\n",
      "Epoch: 10 / 100 Iteration: 104 Train loss: 2.2209382\n",
      "Epoch: 10 / 100 Iteration: 105 Train loss: 1.8728259\n",
      "Epoch: 10 / 100 Iteration: 105  Validation Acc: 0.89333\n",
      "Epoch: 10 / 100 Iteration: 106 Train loss: 2.0007925\n",
      "Epoch: 10 / 100 Iteration: 107 Train loss: 1.9299555\n",
      "Epoch: 10 / 100 Iteration: 108 Train loss: 1.6234525\n",
      "Epoch: 10 / 100 Iteration: 109 Train loss: 1.8624977\n",
      "Epoch: 10 / 100 Iteration: 110 Train loss: 1.6253674\n",
      "Epoch: 10 / 100 Iteration: 110  Validation Acc: 0.89525\n",
      "Epoch: 11 / 100 Iteration: 111 Train loss: 1.7867819\n",
      "Epoch: 11 / 100 Iteration: 112 Train loss: 1.8090473\n",
      "Epoch: 11 / 100 Iteration: 113 Train loss: 1.7556403\n",
      "Epoch: 11 / 100 Iteration: 114 Train loss: 1.7590106\n",
      "Epoch: 11 / 100 Iteration: 115 Train loss: 1.3955182\n",
      "Epoch: 11 / 100 Iteration: 115  Validation Acc: 0.89931\n",
      "Epoch: 11 / 100 Iteration: 116 Train loss: 1.6067022\n",
      "Epoch: 11 / 100 Iteration: 117 Train loss: 1.4568274\n",
      "Epoch: 11 / 100 Iteration: 118 Train loss: 1.2736123\n",
      "Epoch: 11 / 100 Iteration: 119 Train loss: 1.4145696\n",
      "Epoch: 11 / 100 Iteration: 120 Train loss: 1.2584560\n",
      "Epoch: 11 / 100 Iteration: 120  Validation Acc: 0.89911\n",
      "Epoch: 12 / 100 Iteration: 121 Train loss: 1.3801731\n",
      "Epoch: 12 / 100 Iteration: 122 Train loss: 1.4769189\n",
      "Epoch: 12 / 100 Iteration: 123 Train loss: 1.3659358\n",
      "Epoch: 12 / 100 Iteration: 124 Train loss: 1.3750900\n",
      "Epoch: 12 / 100 Iteration: 125 Train loss: 1.1061023\n",
      "Epoch: 12 / 100 Iteration: 125  Validation Acc: 0.90278\n",
      "Epoch: 12 / 100 Iteration: 126 Train loss: 1.3430967\n",
      "Epoch: 12 / 100 Iteration: 127 Train loss: 1.1864308\n",
      "Epoch: 12 / 100 Iteration: 128 Train loss: 1.0473390\n",
      "Epoch: 12 / 100 Iteration: 129 Train loss: 1.0852913\n",
      "Epoch: 12 / 100 Iteration: 130 Train loss: 0.9766786\n",
      "Epoch: 12 / 100 Iteration: 130  Validation Acc: 0.89969\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 13 / 100 Iteration: 131 Train loss: 1.1322412\n",
      "Epoch: 13 / 100 Iteration: 132 Train loss: 1.2993309\n",
      "Epoch: 13 / 100 Iteration: 133 Train loss: 1.1438552\n",
      "Epoch: 13 / 100 Iteration: 134 Train loss: 1.1119069\n",
      "Epoch: 13 / 100 Iteration: 135 Train loss: 0.8431520\n",
      "Epoch: 13 / 100 Iteration: 135  Validation Acc: 0.90258\n",
      "Epoch: 13 / 100 Iteration: 136 Train loss: 1.0814648\n",
      "Epoch: 13 / 100 Iteration: 137 Train loss: 0.9997476\n",
      "Epoch: 13 / 100 Iteration: 138 Train loss: 0.9442377\n",
      "Epoch: 13 / 100 Iteration: 139 Train loss: 0.8671349\n",
      "Epoch: 13 / 100 Iteration: 140 Train loss: 0.7588915\n",
      "Epoch: 13 / 100 Iteration: 140  Validation Acc: 0.90066\n",
      "Epoch: 14 / 100 Iteration: 141 Train loss: 0.9529404\n",
      "Epoch: 14 / 100 Iteration: 142 Train loss: 1.1787919\n",
      "Epoch: 14 / 100 Iteration: 143 Train loss: 1.0239868\n",
      "Epoch: 14 / 100 Iteration: 144 Train loss: 0.9087358\n",
      "Epoch: 14 / 100 Iteration: 145 Train loss: 0.6828351\n",
      "Epoch: 14 / 100 Iteration: 145  Validation Acc: 0.90606\n",
      "Epoch: 14 / 100 Iteration: 146 Train loss: 0.8472179\n",
      "Epoch: 14 / 100 Iteration: 147 Train loss: 0.8722103\n",
      "Epoch: 14 / 100 Iteration: 148 Train loss: 0.9164028\n",
      "Epoch: 14 / 100 Iteration: 149 Train loss: 0.7712157\n",
      "Epoch: 14 / 100 Iteration: 150 Train loss: 0.6491719\n",
      "Epoch: 14 / 100 Iteration: 150  Validation Acc: 0.90586\n",
      "Epoch: 15 / 100 Iteration: 151 Train loss: 0.7892220\n",
      "Epoch: 15 / 100 Iteration: 152 Train loss: 0.9722670\n",
      "Epoch: 15 / 100 Iteration: 153 Train loss: 0.9128029\n",
      "Epoch: 15 / 100 Iteration: 154 Train loss: 0.8175505\n",
      "Epoch: 15 / 100 Iteration: 155 Train loss: 0.6347616\n",
      "Epoch: 15 / 100 Iteration: 155  Validation Acc: 0.90895\n",
      "Epoch: 15 / 100 Iteration: 156 Train loss: 0.6898651\n",
      "Epoch: 15 / 100 Iteration: 157 Train loss: 0.6847029\n",
      "Epoch: 15 / 100 Iteration: 158 Train loss: 0.8454418\n",
      "Epoch: 15 / 100 Iteration: 159 Train loss: 0.7215603\n",
      "Epoch: 15 / 100 Iteration: 160 Train loss: 0.6025079\n",
      "Epoch: 15 / 100 Iteration: 160  Validation Acc: 0.90953\n",
      "Epoch: 16 / 100 Iteration: 161 Train loss: 0.6956999\n",
      "Epoch: 16 / 100 Iteration: 162 Train loss: 0.7816218\n",
      "Epoch: 16 / 100 Iteration: 163 Train loss: 0.7464976\n",
      "Epoch: 16 / 100 Iteration: 164 Train loss: 0.7667269\n",
      "Epoch: 16 / 100 Iteration: 165 Train loss: 0.6488275\n",
      "Epoch: 16 / 100 Iteration: 165  Validation Acc: 0.91204\n",
      "Epoch: 16 / 100 Iteration: 166 Train loss: 0.6482306\n",
      "Epoch: 16 / 100 Iteration: 167 Train loss: 0.5727505\n",
      "Epoch: 16 / 100 Iteration: 168 Train loss: 0.6573637\n",
      "Epoch: 16 / 100 Iteration: 169 Train loss: 0.6099606\n",
      "Epoch: 16 / 100 Iteration: 170 Train loss: 0.6993781\n",
      "Epoch: 16 / 100 Iteration: 170  Validation Acc: 0.91088\n",
      "Epoch: 17 / 100 Iteration: 171 Train loss: 0.7167313\n",
      "Epoch: 17 / 100 Iteration: 172 Train loss: 0.6617697\n",
      "Epoch: 17 / 100 Iteration: 173 Train loss: 0.5857464\n",
      "Epoch: 17 / 100 Iteration: 174 Train loss: 0.6360129\n",
      "Epoch: 17 / 100 Iteration: 175 Train loss: 0.6484230\n",
      "Epoch: 17 / 100 Iteration: 175  Validation Acc: 0.90664\n",
      "Epoch: 17 / 100 Iteration: 176 Train loss: 0.6626450\n",
      "Epoch: 17 / 100 Iteration: 177 Train loss: 0.5476910\n",
      "Epoch: 17 / 100 Iteration: 178 Train loss: 0.5512644\n",
      "Epoch: 17 / 100 Iteration: 179 Train loss: 0.4666427\n",
      "Epoch: 17 / 100 Iteration: 180 Train loss: 0.6074309\n",
      "Epoch: 17 / 100 Iteration: 180  Validation Acc: 0.91127\n",
      "Epoch: 18 / 100 Iteration: 181 Train loss: 0.7077789\n",
      "Epoch: 18 / 100 Iteration: 182 Train loss: 0.6969125\n",
      "Epoch: 18 / 100 Iteration: 183 Train loss: 0.4958949\n",
      "Epoch: 18 / 100 Iteration: 184 Train loss: 0.4939949\n",
      "Epoch: 18 / 100 Iteration: 185 Train loss: 0.5897402\n",
      "Epoch: 18 / 100 Iteration: 185  Validation Acc: 0.90239\n",
      "Epoch: 18 / 100 Iteration: 186 Train loss: 0.7517066\n",
      "Epoch: 18 / 100 Iteration: 187 Train loss: 0.6088171\n",
      "Epoch: 18 / 100 Iteration: 188 Train loss: 0.5140363\n",
      "Epoch: 18 / 100 Iteration: 189 Train loss: 0.4362501\n",
      "Epoch: 18 / 100 Iteration: 190 Train loss: 0.5734830\n",
      "Epoch: 18 / 100 Iteration: 190  Validation Acc: 0.90895\n",
      "Epoch: 19 / 100 Iteration: 191 Train loss: 0.6543142\n",
      "Epoch: 19 / 100 Iteration: 192 Train loss: 0.8118639\n",
      "Epoch: 19 / 100 Iteration: 193 Train loss: 0.5364577\n",
      "Epoch: 19 / 100 Iteration: 194 Train loss: 0.4301934\n",
      "Epoch: 19 / 100 Iteration: 195 Train loss: 0.4414034\n",
      "Epoch: 19 / 100 Iteration: 195  Validation Acc: 0.90316\n",
      "Epoch: 19 / 100 Iteration: 196 Train loss: 0.7422939\n",
      "Epoch: 19 / 100 Iteration: 197 Train loss: 0.6848946\n",
      "Epoch: 19 / 100 Iteration: 198 Train loss: 0.5768435\n",
      "Epoch: 19 / 100 Iteration: 199 Train loss: 0.4189218\n",
      "Epoch: 19 / 100 Iteration: 200 Train loss: 0.3939047\n",
      "Epoch: 19 / 100 Iteration: 200  Validation Acc: 0.91281\n",
      "Epoch: 20 / 100 Iteration: 201 Train loss: 0.5603803\n",
      "Epoch: 20 / 100 Iteration: 202 Train loss: 0.9301148\n",
      "Epoch: 20 / 100 Iteration: 203 Train loss: 0.7726358\n",
      "Epoch: 20 / 100 Iteration: 204 Train loss: 0.4551031\n",
      "Epoch: 20 / 100 Iteration: 205 Train loss: 0.2659543\n",
      "Epoch: 20 / 100 Iteration: 205  Validation Acc: 0.90856\n",
      "Epoch: 20 / 100 Iteration: 206 Train loss: 0.5740634\n",
      "Epoch: 20 / 100 Iteration: 207 Train loss: 0.8370619\n",
      "Epoch: 20 / 100 Iteration: 208 Train loss: 0.8162389\n",
      "Epoch: 20 / 100 Iteration: 209 Train loss: 0.3643298\n",
      "Epoch: 20 / 100 Iteration: 210 Train loss: 0.2816272\n",
      "Epoch: 20 / 100 Iteration: 210  Validation Acc: 0.91570\n",
      "Epoch: 21 / 100 Iteration: 211 Train loss: 0.4013485\n",
      "Epoch: 21 / 100 Iteration: 212 Train loss: 0.7662154\n",
      "Epoch: 21 / 100 Iteration: 213 Train loss: 0.9740167\n",
      "Epoch: 21 / 100 Iteration: 214 Train loss: 0.6403329\n",
      "Epoch: 21 / 100 Iteration: 215 Train loss: 0.2972488\n",
      "Epoch: 21 / 100 Iteration: 215  Validation Acc: 0.91493\n",
      "Epoch: 21 / 100 Iteration: 216 Train loss: 0.4214909\n",
      "Epoch: 21 / 100 Iteration: 217 Train loss: 0.6012272\n",
      "Epoch: 21 / 100 Iteration: 218 Train loss: 0.7691029\n",
      "Epoch: 21 / 100 Iteration: 219 Train loss: 0.4440018\n",
      "Epoch: 21 / 100 Iteration: 220 Train loss: 0.2721691\n",
      "Epoch: 21 / 100 Iteration: 220  Validation Acc: 0.91705\n",
      "Epoch: 22 / 100 Iteration: 221 Train loss: 0.3681199\n",
      "Epoch: 22 / 100 Iteration: 222 Train loss: 0.5541852\n",
      "Epoch: 22 / 100 Iteration: 223 Train loss: 0.7473958\n",
      "Epoch: 22 / 100 Iteration: 224 Train loss: 0.6271449\n",
      "Epoch: 22 / 100 Iteration: 225 Train loss: 0.3283222\n",
      "Epoch: 22 / 100 Iteration: 225  Validation Acc: 0.91782\n",
      "Epoch: 22 / 100 Iteration: 226 Train loss: 0.4686316\n",
      "Epoch: 22 / 100 Iteration: 227 Train loss: 0.4214524\n",
      "Epoch: 22 / 100 Iteration: 228 Train loss: 0.7577793\n",
      "Epoch: 22 / 100 Iteration: 229 Train loss: 0.5310280\n",
      "Epoch: 22 / 100 Iteration: 230 Train loss: 0.3185706\n",
      "Epoch: 22 / 100 Iteration: 230  Validation Acc: 0.91358\n",
      "Epoch: 23 / 100 Iteration: 231 Train loss: 0.4280548\n",
      "Epoch: 23 / 100 Iteration: 232 Train loss: 0.5782347\n",
      "Epoch: 23 / 100 Iteration: 233 Train loss: 0.7113883\n",
      "Epoch: 23 / 100 Iteration: 234 Train loss: 0.5275546\n",
      "Epoch: 23 / 100 Iteration: 235 Train loss: 0.3591504\n",
      "Epoch: 23 / 100 Iteration: 235  Validation Acc: 0.91532\n",
      "Epoch: 23 / 100 Iteration: 236 Train loss: 0.5457014\n",
      "Epoch: 23 / 100 Iteration: 237 Train loss: 0.3824436\n",
      "Epoch: 23 / 100 Iteration: 238 Train loss: 0.7565311\n",
      "Epoch: 23 / 100 Iteration: 239 Train loss: 0.6603464\n",
      "Epoch: 23 / 100 Iteration: 240 Train loss: 0.4634917\n",
      "Epoch: 23 / 100 Iteration: 240  Validation Acc: 0.91647\n",
      "Epoch: 24 / 100 Iteration: 241 Train loss: 0.3312691\n",
      "Epoch: 24 / 100 Iteration: 242 Train loss: 0.3283061\n",
      "Epoch: 24 / 100 Iteration: 243 Train loss: 0.5349568\n",
      "Epoch: 24 / 100 Iteration: 244 Train loss: 0.7812089\n",
      "Epoch: 24 / 100 Iteration: 245 Train loss: 0.6060600\n",
      "Epoch: 24 / 100 Iteration: 245  Validation Acc: 0.92110\n",
      "Epoch: 24 / 100 Iteration: 246 Train loss: 0.2783801\n",
      "Epoch: 24 / 100 Iteration: 247 Train loss: 0.1963800\n",
      "Epoch: 24 / 100 Iteration: 248 Train loss: 0.4023667\n",
      "Epoch: 24 / 100 Iteration: 249 Train loss: 0.7118999\n",
      "Epoch: 24 / 100 Iteration: 250 Train loss: 0.6839321\n",
      "Epoch: 24 / 100 Iteration: 250  Validation Acc: 0.91975\n",
      "Epoch: 25 / 100 Iteration: 251 Train loss: 0.5129663\n",
      "Epoch: 25 / 100 Iteration: 252 Train loss: 0.2283863\n",
      "Epoch: 25 / 100 Iteration: 253 Train loss: 0.2266614\n",
      "Epoch: 25 / 100 Iteration: 254 Train loss: 0.3772913\n",
      "Epoch: 25 / 100 Iteration: 255 Train loss: 0.6827177\n",
      "Epoch: 25 / 100 Iteration: 255  Validation Acc: 0.91262\n",
      "Epoch: 25 / 100 Iteration: 256 Train loss: 0.7486723\n",
      "Epoch: 25 / 100 Iteration: 257 Train loss: 0.2557164\n",
      "Epoch: 25 / 100 Iteration: 258 Train loss: 0.2133448\n",
      "Epoch: 25 / 100 Iteration: 259 Train loss: 0.2098888\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 25 / 100 Iteration: 260 Train loss: 0.3856362\n",
      "Epoch: 25 / 100 Iteration: 260  Validation Acc: 0.91744\n",
      "Epoch: 26 / 100 Iteration: 261 Train loss: 0.7436368\n",
      "Epoch: 26 / 100 Iteration: 262 Train loss: 0.4346994\n",
      "Epoch: 26 / 100 Iteration: 263 Train loss: 0.3175412\n",
      "Epoch: 26 / 100 Iteration: 264 Train loss: 0.1919069\n",
      "Epoch: 26 / 100 Iteration: 265 Train loss: 0.1403967\n",
      "Epoch: 26 / 100 Iteration: 265  Validation Acc: 0.91917\n",
      "Epoch: 26 / 100 Iteration: 266 Train loss: 0.3505985\n",
      "Epoch: 26 / 100 Iteration: 267 Train loss: 0.4945488\n",
      "Epoch: 26 / 100 Iteration: 268 Train loss: 0.3363181\n",
      "Epoch: 26 / 100 Iteration: 269 Train loss: 0.1886283\n",
      "Epoch: 26 / 100 Iteration: 270 Train loss: 0.1308864\n",
      "Epoch: 26 / 100 Iteration: 270  Validation Acc: 0.92014\n",
      "Epoch: 27 / 100 Iteration: 271 Train loss: 0.2337095\n",
      "Epoch: 27 / 100 Iteration: 272 Train loss: 0.3400331\n",
      "Epoch: 27 / 100 Iteration: 273 Train loss: 0.2962362\n",
      "Epoch: 27 / 100 Iteration: 274 Train loss: 0.2373891\n",
      "Epoch: 27 / 100 Iteration: 275 Train loss: 0.1490297\n",
      "Epoch: 27 / 100 Iteration: 275  Validation Acc: 0.92361\n",
      "Epoch: 27 / 100 Iteration: 276 Train loss: 0.2323538\n",
      "Epoch: 27 / 100 Iteration: 277 Train loss: 0.1734751\n",
      "Epoch: 27 / 100 Iteration: 278 Train loss: 0.2143258\n",
      "Epoch: 27 / 100 Iteration: 279 Train loss: 0.1716081\n",
      "Epoch: 27 / 100 Iteration: 280 Train loss: 0.1444003\n",
      "Epoch: 27 / 100 Iteration: 280  Validation Acc: 0.92515\n",
      "Epoch: 28 / 100 Iteration: 281 Train loss: 0.2015804\n",
      "Epoch: 28 / 100 Iteration: 282 Train loss: 0.1281313\n",
      "Epoch: 28 / 100 Iteration: 283 Train loss: 0.1669201\n",
      "Epoch: 28 / 100 Iteration: 284 Train loss: 0.1019834\n",
      "Epoch: 28 / 100 Iteration: 285 Train loss: 0.1052293\n",
      "Epoch: 28 / 100 Iteration: 285  Validation Acc: 0.92187\n",
      "Epoch: 28 / 100 Iteration: 286 Train loss: 0.1349923\n",
      "Epoch: 28 / 100 Iteration: 287 Train loss: 0.1345055\n",
      "Epoch: 28 / 100 Iteration: 288 Train loss: 0.1006128\n",
      "Epoch: 28 / 100 Iteration: 289 Train loss: 0.0872727\n",
      "Epoch: 28 / 100 Iteration: 290 Train loss: 0.0974020\n",
      "Epoch: 28 / 100 Iteration: 290  Validation Acc: 0.92496\n",
      "Epoch: 29 / 100 Iteration: 291 Train loss: 0.1328676\n",
      "Epoch: 29 / 100 Iteration: 292 Train loss: 0.1006740\n",
      "Epoch: 29 / 100 Iteration: 293 Train loss: 0.1202888\n",
      "Epoch: 29 / 100 Iteration: 294 Train loss: 0.0892534\n",
      "Epoch: 29 / 100 Iteration: 295 Train loss: 0.0829631\n",
      "Epoch: 29 / 100 Iteration: 295  Validation Acc: 0.92631\n",
      "Epoch: 29 / 100 Iteration: 296 Train loss: 0.0964833\n",
      "Epoch: 29 / 100 Iteration: 297 Train loss: 0.1013307\n",
      "Epoch: 29 / 100 Iteration: 298 Train loss: 0.0946583\n",
      "Epoch: 29 / 100 Iteration: 299 Train loss: 0.0698393\n",
      "Epoch: 29 / 100 Iteration: 300 Train loss: 0.0674579\n",
      "Epoch: 29 / 100 Iteration: 300  Validation Acc: 0.92477\n",
      "Epoch: 30 / 100 Iteration: 301 Train loss: 0.1050408\n",
      "Epoch: 30 / 100 Iteration: 302 Train loss: 0.0742446\n",
      "Epoch: 30 / 100 Iteration: 303 Train loss: 0.0985855\n",
      "Epoch: 30 / 100 Iteration: 304 Train loss: 0.0517649\n",
      "Epoch: 30 / 100 Iteration: 305 Train loss: 0.0616457\n",
      "Epoch: 30 / 100 Iteration: 305  Validation Acc: 0.92573\n",
      "Epoch: 30 / 100 Iteration: 306 Train loss: 0.0710092\n",
      "Epoch: 30 / 100 Iteration: 307 Train loss: 0.0833681\n",
      "Epoch: 30 / 100 Iteration: 308 Train loss: 0.0666957\n",
      "Epoch: 30 / 100 Iteration: 309 Train loss: 0.0622282\n",
      "Epoch: 30 / 100 Iteration: 310 Train loss: 0.0623653\n",
      "Epoch: 30 / 100 Iteration: 310  Validation Acc: 0.92612\n",
      "Epoch: 31 / 100 Iteration: 311 Train loss: 0.0807056\n",
      "Epoch: 31 / 100 Iteration: 312 Train loss: 0.0552612\n",
      "Epoch: 31 / 100 Iteration: 313 Train loss: 0.0838042\n",
      "Epoch: 31 / 100 Iteration: 314 Train loss: 0.0437473\n",
      "Epoch: 31 / 100 Iteration: 315 Train loss: 0.0532024\n",
      "Epoch: 31 / 100 Iteration: 315  Validation Acc: 0.92573\n",
      "Epoch: 31 / 100 Iteration: 316 Train loss: 0.0539913\n",
      "Epoch: 31 / 100 Iteration: 317 Train loss: 0.0753336\n",
      "Epoch: 31 / 100 Iteration: 318 Train loss: 0.0528715\n",
      "Epoch: 31 / 100 Iteration: 319 Train loss: 0.0466648\n",
      "Epoch: 31 / 100 Iteration: 320 Train loss: 0.0484902\n",
      "Epoch: 31 / 100 Iteration: 320  Validation Acc: 0.92612\n",
      "Epoch: 32 / 100 Iteration: 321 Train loss: 0.0630424\n",
      "Epoch: 32 / 100 Iteration: 322 Train loss: 0.0523954\n",
      "Epoch: 32 / 100 Iteration: 323 Train loss: 0.0802305\n",
      "Epoch: 32 / 100 Iteration: 324 Train loss: 0.0320972\n",
      "Epoch: 32 / 100 Iteration: 325 Train loss: 0.0452956\n",
      "Epoch: 32 / 100 Iteration: 325  Validation Acc: 0.92477\n",
      "Epoch: 32 / 100 Iteration: 326 Train loss: 0.0409166\n",
      "Epoch: 32 / 100 Iteration: 327 Train loss: 0.0654971\n",
      "Epoch: 32 / 100 Iteration: 328 Train loss: 0.0379700\n",
      "Epoch: 32 / 100 Iteration: 329 Train loss: 0.0422268\n",
      "Epoch: 32 / 100 Iteration: 330 Train loss: 0.0446318\n",
      "Epoch: 32 / 100 Iteration: 330  Validation Acc: 0.92496\n",
      "Epoch: 33 / 100 Iteration: 331 Train loss: 0.0516357\n",
      "Epoch: 33 / 100 Iteration: 332 Train loss: 0.0375194\n",
      "Epoch: 33 / 100 Iteration: 333 Train loss: 0.0683235\n",
      "Epoch: 33 / 100 Iteration: 334 Train loss: 0.0307751\n",
      "Epoch: 33 / 100 Iteration: 335 Train loss: 0.0388127\n",
      "Epoch: 33 / 100 Iteration: 335  Validation Acc: 0.92515\n",
      "Epoch: 33 / 100 Iteration: 336 Train loss: 0.0322151\n",
      "Epoch: 33 / 100 Iteration: 337 Train loss: 0.0602646\n",
      "Epoch: 33 / 100 Iteration: 338 Train loss: 0.0319766\n",
      "Epoch: 33 / 100 Iteration: 339 Train loss: 0.0318553\n",
      "Epoch: 33 / 100 Iteration: 340 Train loss: 0.0376239\n",
      "Epoch: 33 / 100 Iteration: 340  Validation Acc: 0.92593\n",
      "Epoch: 34 / 100 Iteration: 341 Train loss: 0.0372298\n",
      "Epoch: 34 / 100 Iteration: 342 Train loss: 0.0352916\n",
      "Epoch: 34 / 100 Iteration: 343 Train loss: 0.0624148\n",
      "Epoch: 34 / 100 Iteration: 344 Train loss: 0.0225473\n",
      "Epoch: 34 / 100 Iteration: 345 Train loss: 0.0358394\n",
      "Epoch: 34 / 100 Iteration: 345  Validation Acc: 0.92573\n",
      "Epoch: 34 / 100 Iteration: 346 Train loss: 0.0248624\n",
      "Epoch: 34 / 100 Iteration: 347 Train loss: 0.0531681\n",
      "Epoch: 34 / 100 Iteration: 348 Train loss: 0.0253499\n",
      "Epoch: 34 / 100 Iteration: 349 Train loss: 0.0279937\n",
      "Epoch: 34 / 100 Iteration: 350 Train loss: 0.0334754\n",
      "Epoch: 34 / 100 Iteration: 350  Validation Acc: 0.92612\n",
      "Epoch: 35 / 100 Iteration: 351 Train loss: 0.0325878\n",
      "Epoch: 35 / 100 Iteration: 352 Train loss: 0.0279080\n",
      "Epoch: 35 / 100 Iteration: 353 Train loss: 0.0528091\n",
      "Epoch: 35 / 100 Iteration: 354 Train loss: 0.0201289\n",
      "Epoch: 35 / 100 Iteration: 355 Train loss: 0.0297359\n",
      "Epoch: 35 / 100 Iteration: 355  Validation Acc: 0.92593\n",
      "Epoch: 35 / 100 Iteration: 356 Train loss: 0.0205650\n",
      "Epoch: 35 / 100 Iteration: 357 Train loss: 0.0466910\n",
      "Epoch: 35 / 100 Iteration: 358 Train loss: 0.0206847\n",
      "Epoch: 35 / 100 Iteration: 359 Train loss: 0.0229700\n",
      "Epoch: 35 / 100 Iteration: 360 Train loss: 0.0274369\n",
      "Epoch: 35 / 100 Iteration: 360  Validation Acc: 0.92631\n",
      "Epoch: 36 / 100 Iteration: 361 Train loss: 0.0273233\n",
      "Epoch: 36 / 100 Iteration: 362 Train loss: 0.0230094\n",
      "Epoch: 36 / 100 Iteration: 363 Train loss: 0.0462346\n",
      "Epoch: 36 / 100 Iteration: 364 Train loss: 0.0186819\n",
      "Epoch: 36 / 100 Iteration: 365 Train loss: 0.0263462\n",
      "Epoch: 36 / 100 Iteration: 365  Validation Acc: 0.92612\n",
      "Epoch: 36 / 100 Iteration: 366 Train loss: 0.0164957\n",
      "Epoch: 36 / 100 Iteration: 367 Train loss: 0.0399395\n",
      "Epoch: 36 / 100 Iteration: 368 Train loss: 0.0189178\n",
      "Epoch: 36 / 100 Iteration: 369 Train loss: 0.0209327\n",
      "Epoch: 36 / 100 Iteration: 370 Train loss: 0.0233467\n",
      "Epoch: 36 / 100 Iteration: 370  Validation Acc: 0.92650\n",
      "Epoch: 37 / 100 Iteration: 371 Train loss: 0.0244344\n",
      "Epoch: 37 / 100 Iteration: 372 Train loss: 0.0187522\n",
      "Epoch: 37 / 100 Iteration: 373 Train loss: 0.0424138\n",
      "Epoch: 37 / 100 Iteration: 374 Train loss: 0.0172874\n",
      "Epoch: 37 / 100 Iteration: 375 Train loss: 0.0238119\n",
      "Epoch: 37 / 100 Iteration: 375  Validation Acc: 0.92612\n",
      "Epoch: 37 / 100 Iteration: 376 Train loss: 0.0134948\n",
      "Epoch: 37 / 100 Iteration: 377 Train loss: 0.0341033\n",
      "Epoch: 37 / 100 Iteration: 378 Train loss: 0.0162464\n",
      "Epoch: 37 / 100 Iteration: 379 Train loss: 0.0182510\n",
      "Epoch: 37 / 100 Iteration: 380 Train loss: 0.0190014\n",
      "Epoch: 37 / 100 Iteration: 380  Validation Acc: 0.92650\n",
      "Epoch: 38 / 100 Iteration: 381 Train loss: 0.0208710\n",
      "Epoch: 38 / 100 Iteration: 382 Train loss: 0.0168510\n",
      "Epoch: 38 / 100 Iteration: 383 Train loss: 0.0402346\n",
      "Epoch: 38 / 100 Iteration: 384 Train loss: 0.0152942\n",
      "Epoch: 38 / 100 Iteration: 385 Train loss: 0.0215750\n",
      "Epoch: 38 / 100 Iteration: 385  Validation Acc: 0.92631\n",
      "Epoch: 38 / 100 Iteration: 386 Train loss: 0.0099775\n",
      "Epoch: 38 / 100 Iteration: 387 Train loss: 0.0278413\n",
      "Epoch: 38 / 100 Iteration: 388 Train loss: 0.0146240\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 38 / 100 Iteration: 389 Train loss: 0.0163779\n",
      "Epoch: 38 / 100 Iteration: 390 Train loss: 0.0159192\n",
      "Epoch: 38 / 100 Iteration: 390  Validation Acc: 0.92593\n",
      "Epoch: 39 / 100 Iteration: 391 Train loss: 0.0188030\n",
      "Epoch: 39 / 100 Iteration: 392 Train loss: 0.0152235\n",
      "Epoch: 39 / 100 Iteration: 393 Train loss: 0.0375277\n",
      "Epoch: 39 / 100 Iteration: 394 Train loss: 0.0137831\n",
      "Epoch: 39 / 100 Iteration: 395 Train loss: 0.0200944\n",
      "Epoch: 39 / 100 Iteration: 395  Validation Acc: 0.92612\n",
      "Epoch: 39 / 100 Iteration: 396 Train loss: 0.0078138\n",
      "Epoch: 39 / 100 Iteration: 397 Train loss: 0.0229488\n",
      "Epoch: 39 / 100 Iteration: 398 Train loss: 0.0128847\n",
      "Epoch: 39 / 100 Iteration: 399 Train loss: 0.0141142\n",
      "Epoch: 39 / 100 Iteration: 400 Train loss: 0.0130800\n",
      "Epoch: 39 / 100 Iteration: 400  Validation Acc: 0.92631\n",
      "Epoch: 40 / 100 Iteration: 401 Train loss: 0.0176305\n",
      "Epoch: 40 / 100 Iteration: 402 Train loss: 0.0137677\n",
      "Epoch: 40 / 100 Iteration: 403 Train loss: 0.0355160\n",
      "Epoch: 40 / 100 Iteration: 404 Train loss: 0.0124884\n",
      "Epoch: 40 / 100 Iteration: 405 Train loss: 0.0181736\n",
      "Epoch: 40 / 100 Iteration: 405  Validation Acc: 0.92650\n",
      "Epoch: 40 / 100 Iteration: 406 Train loss: 0.0065919\n",
      "Epoch: 40 / 100 Iteration: 407 Train loss: 0.0183980\n",
      "Epoch: 40 / 100 Iteration: 408 Train loss: 0.0119118\n",
      "Epoch: 40 / 100 Iteration: 409 Train loss: 0.0124712\n",
      "Epoch: 40 / 100 Iteration: 410 Train loss: 0.0108979\n",
      "Epoch: 40 / 100 Iteration: 410  Validation Acc: 0.92631\n",
      "Epoch: 41 / 100 Iteration: 411 Train loss: 0.0161872\n",
      "Epoch: 41 / 100 Iteration: 412 Train loss: 0.0125554\n",
      "Epoch: 41 / 100 Iteration: 413 Train loss: 0.0331777\n",
      "Epoch: 41 / 100 Iteration: 414 Train loss: 0.0112045\n",
      "Epoch: 41 / 100 Iteration: 415 Train loss: 0.0167893\n",
      "Epoch: 41 / 100 Iteration: 415  Validation Acc: 0.92670\n",
      "Epoch: 41 / 100 Iteration: 416 Train loss: 0.0052894\n",
      "Epoch: 41 / 100 Iteration: 417 Train loss: 0.0148863\n",
      "Epoch: 41 / 100 Iteration: 418 Train loss: 0.0110785\n",
      "Epoch: 41 / 100 Iteration: 419 Train loss: 0.0110379\n",
      "Epoch: 41 / 100 Iteration: 420 Train loss: 0.0087731\n",
      "Epoch: 41 / 100 Iteration: 420  Validation Acc: 0.92650\n",
      "Epoch: 42 / 100 Iteration: 421 Train loss: 0.0153126\n",
      "Epoch: 42 / 100 Iteration: 422 Train loss: 0.0116008\n",
      "Epoch: 42 / 100 Iteration: 423 Train loss: 0.0312455\n",
      "Epoch: 42 / 100 Iteration: 424 Train loss: 0.0098920\n",
      "Epoch: 42 / 100 Iteration: 425 Train loss: 0.0150658\n",
      "Epoch: 42 / 100 Iteration: 425  Validation Acc: 0.92689\n",
      "Epoch: 42 / 100 Iteration: 426 Train loss: 0.0043965\n",
      "Epoch: 42 / 100 Iteration: 427 Train loss: 0.0124730\n",
      "Epoch: 42 / 100 Iteration: 428 Train loss: 0.0103877\n",
      "Epoch: 42 / 100 Iteration: 429 Train loss: 0.0099135\n",
      "Epoch: 42 / 100 Iteration: 430 Train loss: 0.0074355\n",
      "Epoch: 42 / 100 Iteration: 430  Validation Acc: 0.92650\n",
      "Epoch: 43 / 100 Iteration: 431 Train loss: 0.0137120\n",
      "Epoch: 43 / 100 Iteration: 432 Train loss: 0.0102911\n",
      "Epoch: 43 / 100 Iteration: 433 Train loss: 0.0291808\n",
      "Epoch: 43 / 100 Iteration: 434 Train loss: 0.0084181\n",
      "Epoch: 43 / 100 Iteration: 435 Train loss: 0.0137304\n",
      "Epoch: 43 / 100 Iteration: 435  Validation Acc: 0.92650\n",
      "Epoch: 43 / 100 Iteration: 436 Train loss: 0.0033709\n",
      "Epoch: 43 / 100 Iteration: 437 Train loss: 0.0110280\n",
      "Epoch: 43 / 100 Iteration: 438 Train loss: 0.0096784\n",
      "Epoch: 43 / 100 Iteration: 439 Train loss: 0.0087525\n",
      "Epoch: 43 / 100 Iteration: 440 Train loss: 0.0061516\n",
      "Epoch: 43 / 100 Iteration: 440  Validation Acc: 0.92670\n",
      "Epoch: 44 / 100 Iteration: 441 Train loss: 0.0127004\n",
      "Epoch: 44 / 100 Iteration: 442 Train loss: 0.0094386\n",
      "Epoch: 44 / 100 Iteration: 443 Train loss: 0.0272463\n",
      "Epoch: 44 / 100 Iteration: 444 Train loss: 0.0072854\n",
      "Epoch: 44 / 100 Iteration: 445 Train loss: 0.0124835\n",
      "Epoch: 44 / 100 Iteration: 445  Validation Acc: 0.92670\n",
      "Epoch: 44 / 100 Iteration: 446 Train loss: 0.0026462\n",
      "Epoch: 44 / 100 Iteration: 447 Train loss: 0.0102568\n",
      "Epoch: 44 / 100 Iteration: 448 Train loss: 0.0090156\n",
      "Epoch: 44 / 100 Iteration: 449 Train loss: 0.0078943\n",
      "Epoch: 44 / 100 Iteration: 450 Train loss: 0.0051179\n",
      "Epoch: 44 / 100 Iteration: 450  Validation Acc: 0.92650\n",
      "Epoch: 45 / 100 Iteration: 451 Train loss: 0.0114345\n",
      "Epoch: 45 / 100 Iteration: 452 Train loss: 0.0084266\n",
      "Epoch: 45 / 100 Iteration: 453 Train loss: 0.0257417\n",
      "Epoch: 45 / 100 Iteration: 454 Train loss: 0.0061635\n",
      "Epoch: 45 / 100 Iteration: 455 Train loss: 0.0113002\n",
      "Epoch: 45 / 100 Iteration: 455  Validation Acc: 0.92670\n",
      "Epoch: 45 / 100 Iteration: 456 Train loss: 0.0022133\n",
      "Epoch: 45 / 100 Iteration: 457 Train loss: 0.0096123\n",
      "Epoch: 45 / 100 Iteration: 458 Train loss: 0.0083929\n",
      "Epoch: 45 / 100 Iteration: 459 Train loss: 0.0070962\n",
      "Epoch: 45 / 100 Iteration: 460 Train loss: 0.0042887\n",
      "Epoch: 45 / 100 Iteration: 460  Validation Acc: 0.92689\n",
      "Epoch: 46 / 100 Iteration: 461 Train loss: 0.0104379\n",
      "Epoch: 46 / 100 Iteration: 462 Train loss: 0.0078650\n",
      "Epoch: 46 / 100 Iteration: 463 Train loss: 0.0240810\n",
      "Epoch: 46 / 100 Iteration: 464 Train loss: 0.0050563\n",
      "Epoch: 46 / 100 Iteration: 465 Train loss: 0.0103272\n",
      "Epoch: 46 / 100 Iteration: 465  Validation Acc: 0.92689\n",
      "Epoch: 46 / 100 Iteration: 466 Train loss: 0.0019349\n",
      "Epoch: 46 / 100 Iteration: 467 Train loss: 0.0089817\n",
      "Epoch: 46 / 100 Iteration: 468 Train loss: 0.0077894\n",
      "Epoch: 46 / 100 Iteration: 469 Train loss: 0.0064090\n",
      "Epoch: 46 / 100 Iteration: 470 Train loss: 0.0035953\n",
      "Epoch: 46 / 100 Iteration: 470  Validation Acc: 0.92689\n",
      "Epoch: 47 / 100 Iteration: 471 Train loss: 0.0093571\n",
      "Epoch: 47 / 100 Iteration: 472 Train loss: 0.0072299\n",
      "Epoch: 47 / 100 Iteration: 473 Train loss: 0.0227417\n",
      "Epoch: 47 / 100 Iteration: 474 Train loss: 0.0041442\n",
      "Epoch: 47 / 100 Iteration: 475 Train loss: 0.0095446\n",
      "Epoch: 47 / 100 Iteration: 475  Validation Acc: 0.92689\n",
      "Epoch: 47 / 100 Iteration: 476 Train loss: 0.0017233\n",
      "Epoch: 47 / 100 Iteration: 477 Train loss: 0.0084873\n",
      "Epoch: 47 / 100 Iteration: 478 Train loss: 0.0072083\n",
      "Epoch: 47 / 100 Iteration: 479 Train loss: 0.0058124\n",
      "Epoch: 47 / 100 Iteration: 480 Train loss: 0.0030416\n",
      "Epoch: 47 / 100 Iteration: 480  Validation Acc: 0.92708\n",
      "Epoch: 48 / 100 Iteration: 481 Train loss: 0.0084140\n",
      "Epoch: 48 / 100 Iteration: 482 Train loss: 0.0067379\n",
      "Epoch: 48 / 100 Iteration: 483 Train loss: 0.0213988\n",
      "Epoch: 48 / 100 Iteration: 484 Train loss: 0.0035684\n",
      "Epoch: 48 / 100 Iteration: 485 Train loss: 0.0088236\n",
      "Epoch: 48 / 100 Iteration: 485  Validation Acc: 0.92708\n",
      "Epoch: 48 / 100 Iteration: 486 Train loss: 0.0015621\n",
      "Epoch: 48 / 100 Iteration: 487 Train loss: 0.0080448\n",
      "Epoch: 48 / 100 Iteration: 488 Train loss: 0.0066976\n",
      "Epoch: 48 / 100 Iteration: 489 Train loss: 0.0053171\n",
      "Epoch: 48 / 100 Iteration: 490 Train loss: 0.0026460\n",
      "Epoch: 48 / 100 Iteration: 490  Validation Acc: 0.92728\n",
      "Epoch: 49 / 100 Iteration: 491 Train loss: 0.0076082\n",
      "Epoch: 49 / 100 Iteration: 492 Train loss: 0.0062387\n",
      "Epoch: 49 / 100 Iteration: 493 Train loss: 0.0202234\n",
      "Epoch: 49 / 100 Iteration: 494 Train loss: 0.0032194\n",
      "Epoch: 49 / 100 Iteration: 495 Train loss: 0.0081043\n",
      "Epoch: 49 / 100 Iteration: 495  Validation Acc: 0.92708\n",
      "Epoch: 49 / 100 Iteration: 496 Train loss: 0.0014275\n",
      "Epoch: 49 / 100 Iteration: 497 Train loss: 0.0076212\n",
      "Epoch: 49 / 100 Iteration: 498 Train loss: 0.0061108\n",
      "Epoch: 49 / 100 Iteration: 499 Train loss: 0.0048565\n",
      "Epoch: 49 / 100 Iteration: 500 Train loss: 0.0023690\n",
      "Epoch: 49 / 100 Iteration: 500  Validation Acc: 0.92728\n",
      "Epoch: 50 / 100 Iteration: 501 Train loss: 0.0069884\n",
      "Epoch: 50 / 100 Iteration: 502 Train loss: 0.0057672\n",
      "Epoch: 50 / 100 Iteration: 503 Train loss: 0.0189512\n",
      "Epoch: 50 / 100 Iteration: 504 Train loss: 0.0029368\n",
      "Epoch: 50 / 100 Iteration: 505 Train loss: 0.0074384\n",
      "Epoch: 50 / 100 Iteration: 505  Validation Acc: 0.92708\n",
      "Epoch: 50 / 100 Iteration: 506 Train loss: 0.0013428\n",
      "Epoch: 50 / 100 Iteration: 507 Train loss: 0.0072369\n",
      "Epoch: 50 / 100 Iteration: 508 Train loss: 0.0055751\n",
      "Epoch: 50 / 100 Iteration: 509 Train loss: 0.0044237\n",
      "Epoch: 50 / 100 Iteration: 510 Train loss: 0.0021596\n",
      "Epoch: 50 / 100 Iteration: 510  Validation Acc: 0.92728\n",
      "Epoch: 51 / 100 Iteration: 511 Train loss: 0.0064506\n",
      "Epoch: 51 / 100 Iteration: 512 Train loss: 0.0053510\n",
      "Epoch: 51 / 100 Iteration: 513 Train loss: 0.0178534\n",
      "Epoch: 51 / 100 Iteration: 514 Train loss: 0.0026975\n",
      "Epoch: 51 / 100 Iteration: 515 Train loss: 0.0068029\n",
      "Epoch: 51 / 100 Iteration: 515  Validation Acc: 0.92728\n",
      "Epoch: 51 / 100 Iteration: 516 Train loss: 0.0012167\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 51 / 100 Iteration: 517 Train loss: 0.0068533\n",
      "Epoch: 51 / 100 Iteration: 518 Train loss: 0.0050857\n",
      "Epoch: 51 / 100 Iteration: 519 Train loss: 0.0040131\n",
      "Epoch: 51 / 100 Iteration: 520 Train loss: 0.0019890\n",
      "Epoch: 51 / 100 Iteration: 520  Validation Acc: 0.92785\n",
      "Epoch: 52 / 100 Iteration: 521 Train loss: 0.0060130\n",
      "Epoch: 52 / 100 Iteration: 522 Train loss: 0.0049325\n",
      "Epoch: 52 / 100 Iteration: 523 Train loss: 0.0166577\n",
      "Epoch: 52 / 100 Iteration: 524 Train loss: 0.0025061\n",
      "Epoch: 52 / 100 Iteration: 525 Train loss: 0.0062339\n",
      "Epoch: 52 / 100 Iteration: 525  Validation Acc: 0.92785\n",
      "Epoch: 52 / 100 Iteration: 526 Train loss: 0.0011427\n",
      "Epoch: 52 / 100 Iteration: 527 Train loss: 0.0065077\n",
      "Epoch: 52 / 100 Iteration: 528 Train loss: 0.0046752\n",
      "Epoch: 52 / 100 Iteration: 529 Train loss: 0.0036379\n",
      "Epoch: 52 / 100 Iteration: 530 Train loss: 0.0018404\n",
      "Epoch: 52 / 100 Iteration: 530  Validation Acc: 0.92785\n",
      "Epoch: 53 / 100 Iteration: 531 Train loss: 0.0056057\n",
      "Epoch: 53 / 100 Iteration: 532 Train loss: 0.0045095\n",
      "Epoch: 53 / 100 Iteration: 533 Train loss: 0.0156453\n",
      "Epoch: 53 / 100 Iteration: 534 Train loss: 0.0023378\n",
      "Epoch: 53 / 100 Iteration: 535 Train loss: 0.0056670\n",
      "Epoch: 53 / 100 Iteration: 535  Validation Acc: 0.92805\n",
      "Epoch: 53 / 100 Iteration: 536 Train loss: 0.0010702\n",
      "Epoch: 53 / 100 Iteration: 537 Train loss: 0.0061391\n",
      "Epoch: 53 / 100 Iteration: 538 Train loss: 0.0042658\n",
      "Epoch: 53 / 100 Iteration: 539 Train loss: 0.0032875\n",
      "Epoch: 53 / 100 Iteration: 540 Train loss: 0.0017144\n",
      "Epoch: 53 / 100 Iteration: 540  Validation Acc: 0.92785\n",
      "Epoch: 54 / 100 Iteration: 541 Train loss: 0.0052304\n",
      "Epoch: 54 / 100 Iteration: 542 Train loss: 0.0041042\n",
      "Epoch: 54 / 100 Iteration: 543 Train loss: 0.0147323\n",
      "Epoch: 54 / 100 Iteration: 544 Train loss: 0.0021871\n",
      "Epoch: 54 / 100 Iteration: 545 Train loss: 0.0051338\n",
      "Epoch: 54 / 100 Iteration: 545  Validation Acc: 0.92785\n",
      "Epoch: 54 / 100 Iteration: 546 Train loss: 0.0010087\n",
      "Epoch: 54 / 100 Iteration: 547 Train loss: 0.0057980\n",
      "Epoch: 54 / 100 Iteration: 548 Train loss: 0.0038772\n",
      "Epoch: 54 / 100 Iteration: 549 Train loss: 0.0029624\n",
      "Epoch: 54 / 100 Iteration: 550 Train loss: 0.0016010\n",
      "Epoch: 54 / 100 Iteration: 550  Validation Acc: 0.92805\n",
      "Epoch: 55 / 100 Iteration: 551 Train loss: 0.0048630\n",
      "Epoch: 55 / 100 Iteration: 552 Train loss: 0.0037020\n",
      "Epoch: 55 / 100 Iteration: 553 Train loss: 0.0140441\n",
      "Epoch: 55 / 100 Iteration: 554 Train loss: 0.0020606\n",
      "Epoch: 55 / 100 Iteration: 555 Train loss: 0.0046034\n",
      "Epoch: 55 / 100 Iteration: 555  Validation Acc: 0.92824\n",
      "Epoch: 55 / 100 Iteration: 556 Train loss: 0.0009390\n",
      "Epoch: 55 / 100 Iteration: 557 Train loss: 0.0054426\n",
      "Epoch: 55 / 100 Iteration: 558 Train loss: 0.0035289\n",
      "Epoch: 55 / 100 Iteration: 559 Train loss: 0.0026768\n",
      "Epoch: 55 / 100 Iteration: 560 Train loss: 0.0014865\n",
      "Epoch: 55 / 100 Iteration: 560  Validation Acc: 0.92843\n",
      "Epoch: 56 / 100 Iteration: 561 Train loss: 0.0045110\n",
      "Epoch: 56 / 100 Iteration: 562 Train loss: 0.0033425\n",
      "Epoch: 56 / 100 Iteration: 563 Train loss: 0.0133999\n",
      "Epoch: 56 / 100 Iteration: 564 Train loss: 0.0019457\n",
      "Epoch: 56 / 100 Iteration: 565 Train loss: 0.0041187\n",
      "Epoch: 56 / 100 Iteration: 565  Validation Acc: 0.92824\n",
      "Epoch: 56 / 100 Iteration: 566 Train loss: 0.0008895\n",
      "Epoch: 56 / 100 Iteration: 567 Train loss: 0.0051079\n",
      "Epoch: 56 / 100 Iteration: 568 Train loss: 0.0032183\n",
      "Epoch: 56 / 100 Iteration: 569 Train loss: 0.0024230\n",
      "Epoch: 56 / 100 Iteration: 570 Train loss: 0.0013874\n",
      "Epoch: 56 / 100 Iteration: 570  Validation Acc: 0.92843\n",
      "Epoch: 57 / 100 Iteration: 571 Train loss: 0.0041684\n",
      "Epoch: 57 / 100 Iteration: 572 Train loss: 0.0030185\n",
      "Epoch: 57 / 100 Iteration: 573 Train loss: 0.0128058\n",
      "Epoch: 57 / 100 Iteration: 574 Train loss: 0.0018375\n",
      "Epoch: 57 / 100 Iteration: 575 Train loss: 0.0037088\n",
      "Epoch: 57 / 100 Iteration: 575  Validation Acc: 0.92843\n",
      "Epoch: 57 / 100 Iteration: 576 Train loss: 0.0008380\n",
      "Epoch: 57 / 100 Iteration: 577 Train loss: 0.0047737\n",
      "Epoch: 57 / 100 Iteration: 578 Train loss: 0.0029304\n",
      "Epoch: 57 / 100 Iteration: 579 Train loss: 0.0021931\n",
      "Epoch: 57 / 100 Iteration: 580 Train loss: 0.0013032\n",
      "Epoch: 57 / 100 Iteration: 580  Validation Acc: 0.92843\n",
      "Epoch: 58 / 100 Iteration: 581 Train loss: 0.0038428\n",
      "Epoch: 58 / 100 Iteration: 582 Train loss: 0.0027148\n",
      "Epoch: 58 / 100 Iteration: 583 Train loss: 0.0121864\n",
      "Epoch: 58 / 100 Iteration: 584 Train loss: 0.0017419\n",
      "Epoch: 58 / 100 Iteration: 585 Train loss: 0.0034215\n",
      "Epoch: 58 / 100 Iteration: 585  Validation Acc: 0.92843\n",
      "Epoch: 58 / 100 Iteration: 586 Train loss: 0.0008046\n",
      "Epoch: 58 / 100 Iteration: 587 Train loss: 0.0044420\n",
      "Epoch: 58 / 100 Iteration: 588 Train loss: 0.0026969\n",
      "Epoch: 58 / 100 Iteration: 589 Train loss: 0.0019811\n",
      "Epoch: 58 / 100 Iteration: 590 Train loss: 0.0012278\n",
      "Epoch: 58 / 100 Iteration: 590  Validation Acc: 0.92843\n",
      "Epoch: 59 / 100 Iteration: 591 Train loss: 0.0035223\n",
      "Epoch: 59 / 100 Iteration: 592 Train loss: 0.0024361\n",
      "Epoch: 59 / 100 Iteration: 593 Train loss: 0.0116097\n",
      "Epoch: 59 / 100 Iteration: 594 Train loss: 0.0016542\n",
      "Epoch: 59 / 100 Iteration: 595 Train loss: 0.0031997\n",
      "Epoch: 59 / 100 Iteration: 595  Validation Acc: 0.92843\n",
      "Epoch: 59 / 100 Iteration: 596 Train loss: 0.0007643\n",
      "Epoch: 59 / 100 Iteration: 597 Train loss: 0.0040952\n",
      "Epoch: 59 / 100 Iteration: 598 Train loss: 0.0025062\n",
      "Epoch: 59 / 100 Iteration: 599 Train loss: 0.0017952\n",
      "Epoch: 59 / 100 Iteration: 600 Train loss: 0.0011581\n",
      "Epoch: 59 / 100 Iteration: 600  Validation Acc: 0.92843\n",
      "Epoch: 60 / 100 Iteration: 601 Train loss: 0.0032302\n",
      "Epoch: 60 / 100 Iteration: 602 Train loss: 0.0021816\n",
      "Epoch: 60 / 100 Iteration: 603 Train loss: 0.0110116\n",
      "Epoch: 60 / 100 Iteration: 604 Train loss: 0.0015723\n",
      "Epoch: 60 / 100 Iteration: 605 Train loss: 0.0030065\n",
      "Epoch: 60 / 100 Iteration: 605  Validation Acc: 0.92805\n",
      "Epoch: 60 / 100 Iteration: 606 Train loss: 0.0007375\n",
      "Epoch: 60 / 100 Iteration: 607 Train loss: 0.0037582\n",
      "Epoch: 60 / 100 Iteration: 608 Train loss: 0.0023616\n",
      "Epoch: 60 / 100 Iteration: 609 Train loss: 0.0016293\n",
      "Epoch: 60 / 100 Iteration: 610 Train loss: 0.0010941\n",
      "Epoch: 60 / 100 Iteration: 610  Validation Acc: 0.92824\n",
      "Epoch: 61 / 100 Iteration: 611 Train loss: 0.0029557\n",
      "Epoch: 61 / 100 Iteration: 612 Train loss: 0.0019609\n",
      "Epoch: 61 / 100 Iteration: 613 Train loss: 0.0104436\n",
      "Epoch: 61 / 100 Iteration: 614 Train loss: 0.0014891\n",
      "Epoch: 61 / 100 Iteration: 615 Train loss: 0.0028275\n",
      "Epoch: 61 / 100 Iteration: 615  Validation Acc: 0.92824\n",
      "Epoch: 61 / 100 Iteration: 616 Train loss: 0.0007095\n",
      "Epoch: 61 / 100 Iteration: 617 Train loss: 0.0034165\n",
      "Epoch: 61 / 100 Iteration: 618 Train loss: 0.0022513\n",
      "Epoch: 61 / 100 Iteration: 619 Train loss: 0.0014720\n",
      "Epoch: 61 / 100 Iteration: 620 Train loss: 0.0010341\n",
      "Epoch: 61 / 100 Iteration: 620  Validation Acc: 0.92805\n",
      "Epoch: 62 / 100 Iteration: 621 Train loss: 0.0027015\n",
      "Epoch: 62 / 100 Iteration: 622 Train loss: 0.0017757\n",
      "Epoch: 62 / 100 Iteration: 623 Train loss: 0.0098834\n",
      "Epoch: 62 / 100 Iteration: 624 Train loss: 0.0013959\n",
      "Epoch: 62 / 100 Iteration: 625 Train loss: 0.0026537\n",
      "Epoch: 62 / 100 Iteration: 625  Validation Acc: 0.92805\n",
      "Epoch: 62 / 100 Iteration: 626 Train loss: 0.0006944\n",
      "Epoch: 62 / 100 Iteration: 627 Train loss: 0.0030750\n",
      "Epoch: 62 / 100 Iteration: 628 Train loss: 0.0021742\n",
      "Epoch: 62 / 100 Iteration: 629 Train loss: 0.0013338\n",
      "Epoch: 62 / 100 Iteration: 630 Train loss: 0.0009801\n",
      "Epoch: 62 / 100 Iteration: 630  Validation Acc: 0.92805\n",
      "Epoch: 63 / 100 Iteration: 631 Train loss: 0.0024623\n",
      "Epoch: 63 / 100 Iteration: 632 Train loss: 0.0016230\n",
      "Epoch: 63 / 100 Iteration: 633 Train loss: 0.0093538\n",
      "Epoch: 63 / 100 Iteration: 634 Train loss: 0.0013201\n",
      "Epoch: 63 / 100 Iteration: 635 Train loss: 0.0024803\n",
      "Epoch: 63 / 100 Iteration: 635  Validation Acc: 0.92805\n",
      "Epoch: 63 / 100 Iteration: 636 Train loss: 0.0006676\n",
      "Epoch: 63 / 100 Iteration: 637 Train loss: 0.0027335\n",
      "Epoch: 63 / 100 Iteration: 638 Train loss: 0.0020931\n",
      "Epoch: 63 / 100 Iteration: 639 Train loss: 0.0012172\n",
      "Epoch: 63 / 100 Iteration: 640 Train loss: 0.0009336\n",
      "Epoch: 63 / 100 Iteration: 640  Validation Acc: 0.92805\n",
      "Epoch: 64 / 100 Iteration: 641 Train loss: 0.0022505\n",
      "Epoch: 64 / 100 Iteration: 642 Train loss: 0.0014961\n",
      "Epoch: 64 / 100 Iteration: 643 Train loss: 0.0087971\n",
      "Epoch: 64 / 100 Iteration: 644 Train loss: 0.0012549\n",
      "Epoch: 64 / 100 Iteration: 645 Train loss: 0.0023096\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 64 / 100 Iteration: 645  Validation Acc: 0.92805\n",
      "Epoch: 64 / 100 Iteration: 646 Train loss: 0.0006528\n",
      "Epoch: 64 / 100 Iteration: 647 Train loss: 0.0023913\n",
      "Epoch: 64 / 100 Iteration: 648 Train loss: 0.0020322\n",
      "Epoch: 64 / 100 Iteration: 649 Train loss: 0.0011187\n",
      "Epoch: 64 / 100 Iteration: 650 Train loss: 0.0008912\n",
      "Epoch: 64 / 100 Iteration: 650  Validation Acc: 0.92785\n",
      "Epoch: 65 / 100 Iteration: 651 Train loss: 0.0020516\n",
      "Epoch: 65 / 100 Iteration: 652 Train loss: 0.0013896\n",
      "Epoch: 65 / 100 Iteration: 653 Train loss: 0.0082936\n",
      "Epoch: 65 / 100 Iteration: 654 Train loss: 0.0011964\n",
      "Epoch: 65 / 100 Iteration: 655 Train loss: 0.0021345\n",
      "Epoch: 65 / 100 Iteration: 655  Validation Acc: 0.92785\n",
      "Epoch: 65 / 100 Iteration: 656 Train loss: 0.0006277\n",
      "Epoch: 65 / 100 Iteration: 657 Train loss: 0.0020493\n",
      "Epoch: 65 / 100 Iteration: 658 Train loss: 0.0019766\n",
      "Epoch: 65 / 100 Iteration: 659 Train loss: 0.0010343\n",
      "Epoch: 65 / 100 Iteration: 660 Train loss: 0.0008536\n",
      "Epoch: 65 / 100 Iteration: 660  Validation Acc: 0.92785\n",
      "Epoch: 66 / 100 Iteration: 661 Train loss: 0.0018786\n",
      "Epoch: 66 / 100 Iteration: 662 Train loss: 0.0013003\n",
      "Epoch: 66 / 100 Iteration: 663 Train loss: 0.0077371\n",
      "Epoch: 66 / 100 Iteration: 664 Train loss: 0.0011445\n",
      "Epoch: 66 / 100 Iteration: 665 Train loss: 0.0019640\n",
      "Epoch: 66 / 100 Iteration: 665  Validation Acc: 0.92805\n",
      "Epoch: 66 / 100 Iteration: 666 Train loss: 0.0006200\n",
      "Epoch: 66 / 100 Iteration: 667 Train loss: 0.0017180\n",
      "Epoch: 66 / 100 Iteration: 668 Train loss: 0.0019343\n",
      "Epoch: 66 / 100 Iteration: 669 Train loss: 0.0009637\n",
      "Epoch: 66 / 100 Iteration: 670 Train loss: 0.0008202\n",
      "Epoch: 66 / 100 Iteration: 670  Validation Acc: 0.92805\n",
      "Epoch: 67 / 100 Iteration: 671 Train loss: 0.0017145\n",
      "Epoch: 67 / 100 Iteration: 672 Train loss: 0.0012233\n",
      "Epoch: 67 / 100 Iteration: 673 Train loss: 0.0072399\n",
      "Epoch: 67 / 100 Iteration: 674 Train loss: 0.0010998\n",
      "Epoch: 67 / 100 Iteration: 675 Train loss: 0.0017939\n",
      "Epoch: 67 / 100 Iteration: 675  Validation Acc: 0.92805\n",
      "Epoch: 67 / 100 Iteration: 676 Train loss: 0.0005914\n",
      "Epoch: 67 / 100 Iteration: 677 Train loss: 0.0013875\n",
      "Epoch: 67 / 100 Iteration: 678 Train loss: 0.0018863\n",
      "Epoch: 67 / 100 Iteration: 679 Train loss: 0.0009038\n",
      "Epoch: 67 / 100 Iteration: 680 Train loss: 0.0007906\n",
      "Epoch: 67 / 100 Iteration: 680  Validation Acc: 0.92805\n",
      "Epoch: 68 / 100 Iteration: 681 Train loss: 0.0015799\n",
      "Epoch: 68 / 100 Iteration: 682 Train loss: 0.0011573\n",
      "Epoch: 68 / 100 Iteration: 683 Train loss: 0.0066812\n",
      "Epoch: 68 / 100 Iteration: 684 Train loss: 0.0010579\n",
      "Epoch: 68 / 100 Iteration: 685 Train loss: 0.0016324\n",
      "Epoch: 68 / 100 Iteration: 685  Validation Acc: 0.92805\n",
      "Epoch: 68 / 100 Iteration: 686 Train loss: 0.0005845\n",
      "Epoch: 68 / 100 Iteration: 687 Train loss: 0.0010987\n",
      "Epoch: 68 / 100 Iteration: 688 Train loss: 0.0018445\n",
      "Epoch: 68 / 100 Iteration: 689 Train loss: 0.0008504\n",
      "Epoch: 68 / 100 Iteration: 690 Train loss: 0.0007607\n",
      "Epoch: 68 / 100 Iteration: 690  Validation Acc: 0.92805\n",
      "Epoch: 69 / 100 Iteration: 691 Train loss: 0.0014472\n",
      "Epoch: 69 / 100 Iteration: 692 Train loss: 0.0010977\n",
      "Epoch: 69 / 100 Iteration: 693 Train loss: 0.0061837\n",
      "Epoch: 69 / 100 Iteration: 694 Train loss: 0.0010187\n",
      "Epoch: 69 / 100 Iteration: 695 Train loss: 0.0014746\n",
      "Epoch: 69 / 100 Iteration: 695  Validation Acc: 0.92785\n",
      "Epoch: 69 / 100 Iteration: 696 Train loss: 0.0005620\n",
      "Epoch: 69 / 100 Iteration: 697 Train loss: 0.0008797\n",
      "Epoch: 69 / 100 Iteration: 698 Train loss: 0.0017980\n",
      "Epoch: 69 / 100 Iteration: 699 Train loss: 0.0008030\n",
      "Epoch: 69 / 100 Iteration: 700 Train loss: 0.0007309\n",
      "Epoch: 69 / 100 Iteration: 700  Validation Acc: 0.92766\n",
      "Epoch: 70 / 100 Iteration: 701 Train loss: 0.0013383\n",
      "Epoch: 70 / 100 Iteration: 702 Train loss: 0.0010469\n",
      "Epoch: 70 / 100 Iteration: 703 Train loss: 0.0056294\n",
      "Epoch: 70 / 100 Iteration: 704 Train loss: 0.0009817\n",
      "Epoch: 70 / 100 Iteration: 705 Train loss: 0.0013253\n",
      "Epoch: 70 / 100 Iteration: 705  Validation Acc: 0.92747\n",
      "Epoch: 70 / 100 Iteration: 706 Train loss: 0.0005544\n",
      "Epoch: 70 / 100 Iteration: 707 Train loss: 0.0007646\n",
      "Epoch: 70 / 100 Iteration: 708 Train loss: 0.0017539\n",
      "Epoch: 70 / 100 Iteration: 709 Train loss: 0.0007609\n",
      "Epoch: 70 / 100 Iteration: 710 Train loss: 0.0007017\n",
      "Epoch: 70 / 100 Iteration: 710  Validation Acc: 0.92747\n",
      "Epoch: 71 / 100 Iteration: 711 Train loss: 0.0012326\n",
      "Epoch: 71 / 100 Iteration: 712 Train loss: 0.0009986\n",
      "Epoch: 71 / 100 Iteration: 713 Train loss: 0.0051089\n",
      "Epoch: 71 / 100 Iteration: 714 Train loss: 0.0009470\n",
      "Epoch: 71 / 100 Iteration: 715 Train loss: 0.0011827\n",
      "Epoch: 71 / 100 Iteration: 715  Validation Acc: 0.92766\n",
      "Epoch: 71 / 100 Iteration: 716 Train loss: 0.0005297\n",
      "Epoch: 71 / 100 Iteration: 717 Train loss: 0.0006998\n",
      "Epoch: 71 / 100 Iteration: 718 Train loss: 0.0017052\n",
      "Epoch: 71 / 100 Iteration: 719 Train loss: 0.0007230\n",
      "Epoch: 71 / 100 Iteration: 720 Train loss: 0.0006752\n",
      "Epoch: 71 / 100 Iteration: 720  Validation Acc: 0.92766\n",
      "Epoch: 72 / 100 Iteration: 721 Train loss: 0.0011501\n",
      "Epoch: 72 / 100 Iteration: 722 Train loss: 0.0009582\n",
      "Epoch: 72 / 100 Iteration: 723 Train loss: 0.0045503\n",
      "Epoch: 72 / 100 Iteration: 724 Train loss: 0.0009136\n",
      "Epoch: 72 / 100 Iteration: 725 Train loss: 0.0010440\n",
      "Epoch: 72 / 100 Iteration: 725  Validation Acc: 0.92766\n",
      "Epoch: 72 / 100 Iteration: 726 Train loss: 0.0005222\n",
      "Epoch: 72 / 100 Iteration: 727 Train loss: 0.0006666\n",
      "Epoch: 72 / 100 Iteration: 728 Train loss: 0.0016684\n",
      "Epoch: 72 / 100 Iteration: 729 Train loss: 0.0006911\n",
      "Epoch: 72 / 100 Iteration: 730 Train loss: 0.0006458\n",
      "Epoch: 72 / 100 Iteration: 730  Validation Acc: 0.92766\n",
      "Epoch: 73 / 100 Iteration: 731 Train loss: 0.0010915\n",
      "Epoch: 73 / 100 Iteration: 732 Train loss: 0.0009187\n",
      "Epoch: 73 / 100 Iteration: 733 Train loss: 0.0040261\n",
      "Epoch: 73 / 100 Iteration: 734 Train loss: 0.0008768\n",
      "Epoch: 73 / 100 Iteration: 735 Train loss: 0.0009177\n",
      "Epoch: 73 / 100 Iteration: 735  Validation Acc: 0.92766\n",
      "Epoch: 73 / 100 Iteration: 736 Train loss: 0.0005024\n",
      "Epoch: 73 / 100 Iteration: 737 Train loss: 0.0006372\n",
      "Epoch: 73 / 100 Iteration: 738 Train loss: 0.0016304\n",
      "Epoch: 73 / 100 Iteration: 739 Train loss: 0.0006612\n",
      "Epoch: 73 / 100 Iteration: 740 Train loss: 0.0006176\n",
      "Epoch: 73 / 100 Iteration: 740  Validation Acc: 0.92766\n",
      "Epoch: 74 / 100 Iteration: 741 Train loss: 0.0010630\n",
      "Epoch: 74 / 100 Iteration: 742 Train loss: 0.0008868\n",
      "Epoch: 74 / 100 Iteration: 743 Train loss: 0.0034552\n",
      "Epoch: 74 / 100 Iteration: 744 Train loss: 0.0008461\n",
      "Epoch: 74 / 100 Iteration: 745 Train loss: 0.0008064\n",
      "Epoch: 74 / 100 Iteration: 745  Validation Acc: 0.92766\n",
      "Epoch: 74 / 100 Iteration: 746 Train loss: 0.0004983\n",
      "Epoch: 74 / 100 Iteration: 747 Train loss: 0.0006188\n",
      "Epoch: 74 / 100 Iteration: 748 Train loss: 0.0015950\n",
      "Epoch: 74 / 100 Iteration: 749 Train loss: 0.0006348\n",
      "Epoch: 74 / 100 Iteration: 750 Train loss: 0.0005954\n",
      "Epoch: 74 / 100 Iteration: 750  Validation Acc: 0.92766\n",
      "Epoch: 75 / 100 Iteration: 751 Train loss: 0.0010032\n",
      "Epoch: 75 / 100 Iteration: 752 Train loss: 0.0008508\n",
      "Epoch: 75 / 100 Iteration: 753 Train loss: 0.0029306\n",
      "Epoch: 75 / 100 Iteration: 754 Train loss: 0.0008193\n",
      "Epoch: 75 / 100 Iteration: 755 Train loss: 0.0007126\n",
      "Epoch: 75 / 100 Iteration: 755  Validation Acc: 0.92766\n",
      "Epoch: 75 / 100 Iteration: 756 Train loss: 0.0004771\n",
      "Epoch: 75 / 100 Iteration: 757 Train loss: 0.0005987\n",
      "Epoch: 75 / 100 Iteration: 758 Train loss: 0.0015622\n",
      "Epoch: 75 / 100 Iteration: 759 Train loss: 0.0006123\n",
      "Epoch: 75 / 100 Iteration: 760 Train loss: 0.0005745\n",
      "Epoch: 75 / 100 Iteration: 760  Validation Acc: 0.92766\n",
      "Epoch: 76 / 100 Iteration: 761 Train loss: 0.0009722\n",
      "Epoch: 76 / 100 Iteration: 762 Train loss: 0.0008199\n",
      "Epoch: 76 / 100 Iteration: 763 Train loss: 0.0023737\n",
      "Epoch: 76 / 100 Iteration: 764 Train loss: 0.0007949\n",
      "Epoch: 76 / 100 Iteration: 765 Train loss: 0.0006362\n",
      "Epoch: 76 / 100 Iteration: 765  Validation Acc: 0.92766\n",
      "Epoch: 76 / 100 Iteration: 766 Train loss: 0.0004689\n",
      "Epoch: 76 / 100 Iteration: 767 Train loss: 0.0005844\n",
      "Epoch: 76 / 100 Iteration: 768 Train loss: 0.0015305\n",
      "Epoch: 76 / 100 Iteration: 769 Train loss: 0.0005935\n",
      "Epoch: 76 / 100 Iteration: 770 Train loss: 0.0005538\n",
      "Epoch: 76 / 100 Iteration: 770  Validation Acc: 0.92766\n",
      "Epoch: 77 / 100 Iteration: 771 Train loss: 0.0009333\n",
      "Epoch: 77 / 100 Iteration: 772 Train loss: 0.0007929\n",
      "Epoch: 77 / 100 Iteration: 773 Train loss: 0.0018412\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 77 / 100 Iteration: 774 Train loss: 0.0007696\n",
      "Epoch: 77 / 100 Iteration: 775 Train loss: 0.0005744\n",
      "Epoch: 77 / 100 Iteration: 775  Validation Acc: 0.92766\n",
      "Epoch: 77 / 100 Iteration: 776 Train loss: 0.0004538\n",
      "Epoch: 77 / 100 Iteration: 777 Train loss: 0.0005587\n",
      "Epoch: 77 / 100 Iteration: 778 Train loss: 0.0014881\n",
      "Epoch: 77 / 100 Iteration: 779 Train loss: 0.0005744\n",
      "Epoch: 77 / 100 Iteration: 780 Train loss: 0.0005352\n",
      "Epoch: 77 / 100 Iteration: 780  Validation Acc: 0.92766\n",
      "Epoch: 78 / 100 Iteration: 781 Train loss: 0.0009150\n",
      "Epoch: 78 / 100 Iteration: 782 Train loss: 0.0007714\n",
      "Epoch: 78 / 100 Iteration: 783 Train loss: 0.0012649\n",
      "Epoch: 78 / 100 Iteration: 784 Train loss: 0.0007491\n",
      "Epoch: 78 / 100 Iteration: 785 Train loss: 0.0005236\n",
      "Epoch: 78 / 100 Iteration: 785  Validation Acc: 0.92766\n",
      "Epoch: 78 / 100 Iteration: 786 Train loss: 0.0004528\n",
      "Epoch: 78 / 100 Iteration: 787 Train loss: 0.0005418\n",
      "Epoch: 78 / 100 Iteration: 788 Train loss: 0.0014532\n",
      "Epoch: 78 / 100 Iteration: 789 Train loss: 0.0005553\n",
      "Epoch: 78 / 100 Iteration: 790 Train loss: 0.0005215\n",
      "Epoch: 78 / 100 Iteration: 790  Validation Acc: 0.92766\n",
      "Epoch: 79 / 100 Iteration: 791 Train loss: 0.0008756\n",
      "Epoch: 79 / 100 Iteration: 792 Train loss: 0.0007400\n",
      "Epoch: 79 / 100 Iteration: 793 Train loss: 0.0008216\n",
      "Epoch: 79 / 100 Iteration: 794 Train loss: 0.0007273\n",
      "Epoch: 79 / 100 Iteration: 795 Train loss: 0.0004837\n",
      "Epoch: 79 / 100 Iteration: 795  Validation Acc: 0.92747\n",
      "Epoch: 79 / 100 Iteration: 796 Train loss: 0.0004274\n",
      "Epoch: 79 / 100 Iteration: 797 Train loss: 0.0005198\n",
      "Epoch: 79 / 100 Iteration: 798 Train loss: 0.0014131\n",
      "Epoch: 79 / 100 Iteration: 799 Train loss: 0.0005379\n",
      "Epoch: 79 / 100 Iteration: 800 Train loss: 0.0005066\n",
      "Epoch: 79 / 100 Iteration: 800  Validation Acc: 0.92785\n",
      "Epoch: 80 / 100 Iteration: 801 Train loss: 0.0008452\n",
      "Epoch: 80 / 100 Iteration: 802 Train loss: 0.0007108\n",
      "Epoch: 80 / 100 Iteration: 803 Train loss: 0.0005746\n",
      "Epoch: 80 / 100 Iteration: 804 Train loss: 0.0007042\n",
      "Epoch: 80 / 100 Iteration: 805 Train loss: 0.0004492\n",
      "Epoch: 80 / 100 Iteration: 805  Validation Acc: 0.92785\n",
      "Epoch: 80 / 100 Iteration: 806 Train loss: 0.0004102\n",
      "Epoch: 80 / 100 Iteration: 807 Train loss: 0.0004964\n",
      "Epoch: 80 / 100 Iteration: 808 Train loss: 0.0013725\n",
      "Epoch: 80 / 100 Iteration: 809 Train loss: 0.0005220\n",
      "Epoch: 80 / 100 Iteration: 810 Train loss: 0.0004923\n",
      "Epoch: 80 / 100 Iteration: 810  Validation Acc: 0.92766\n",
      "Epoch: 81 / 100 Iteration: 811 Train loss: 0.0008032\n",
      "Epoch: 81 / 100 Iteration: 812 Train loss: 0.0006808\n",
      "Epoch: 81 / 100 Iteration: 813 Train loss: 0.0005121\n",
      "Epoch: 81 / 100 Iteration: 814 Train loss: 0.0006804\n",
      "Epoch: 81 / 100 Iteration: 815 Train loss: 0.0004195\n",
      "Epoch: 81 / 100 Iteration: 815  Validation Acc: 0.92766\n",
      "Epoch: 81 / 100 Iteration: 816 Train loss: 0.0003932\n",
      "Epoch: 81 / 100 Iteration: 817 Train loss: 0.0004734\n",
      "Epoch: 81 / 100 Iteration: 818 Train loss: 0.0013379\n",
      "Epoch: 81 / 100 Iteration: 819 Train loss: 0.0005051\n",
      "Epoch: 81 / 100 Iteration: 820 Train loss: 0.0004749\n",
      "Epoch: 81 / 100 Iteration: 820  Validation Acc: 0.92766\n",
      "Epoch: 82 / 100 Iteration: 821 Train loss: 0.0007720\n",
      "Epoch: 82 / 100 Iteration: 822 Train loss: 0.0006534\n",
      "Epoch: 82 / 100 Iteration: 823 Train loss: 0.0004761\n",
      "Epoch: 82 / 100 Iteration: 824 Train loss: 0.0006585\n",
      "Epoch: 82 / 100 Iteration: 825 Train loss: 0.0003940\n",
      "Epoch: 82 / 100 Iteration: 825  Validation Acc: 0.92766\n",
      "Epoch: 82 / 100 Iteration: 826 Train loss: 0.0003775\n",
      "Epoch: 82 / 100 Iteration: 827 Train loss: 0.0004537\n",
      "Epoch: 82 / 100 Iteration: 828 Train loss: 0.0013073\n",
      "Epoch: 82 / 100 Iteration: 829 Train loss: 0.0004888\n",
      "Epoch: 82 / 100 Iteration: 830 Train loss: 0.0004601\n",
      "Epoch: 82 / 100 Iteration: 830  Validation Acc: 0.92766\n",
      "Epoch: 83 / 100 Iteration: 831 Train loss: 0.0007441\n",
      "Epoch: 83 / 100 Iteration: 832 Train loss: 0.0006302\n",
      "Epoch: 83 / 100 Iteration: 833 Train loss: 0.0004540\n",
      "Epoch: 83 / 100 Iteration: 834 Train loss: 0.0006389\n",
      "Epoch: 83 / 100 Iteration: 835 Train loss: 0.0003704\n",
      "Epoch: 83 / 100 Iteration: 835  Validation Acc: 0.92747\n",
      "Epoch: 83 / 100 Iteration: 836 Train loss: 0.0003621\n",
      "Epoch: 83 / 100 Iteration: 837 Train loss: 0.0004370\n",
      "Epoch: 83 / 100 Iteration: 838 Train loss: 0.0012736\n",
      "Epoch: 83 / 100 Iteration: 839 Train loss: 0.0004746\n",
      "Epoch: 83 / 100 Iteration: 840 Train loss: 0.0004478\n",
      "Epoch: 83 / 100 Iteration: 840  Validation Acc: 0.92747\n",
      "Epoch: 84 / 100 Iteration: 841 Train loss: 0.0007225\n",
      "Epoch: 84 / 100 Iteration: 842 Train loss: 0.0006086\n",
      "Epoch: 84 / 100 Iteration: 843 Train loss: 0.0004362\n",
      "Epoch: 84 / 100 Iteration: 844 Train loss: 0.0006211\n",
      "Epoch: 84 / 100 Iteration: 845 Train loss: 0.0003528\n",
      "Epoch: 84 / 100 Iteration: 845  Validation Acc: 0.92747\n",
      "Epoch: 84 / 100 Iteration: 846 Train loss: 0.0003491\n",
      "Epoch: 84 / 100 Iteration: 847 Train loss: 0.0004215\n",
      "Epoch: 84 / 100 Iteration: 848 Train loss: 0.0012430\n",
      "Epoch: 84 / 100 Iteration: 849 Train loss: 0.0004606\n",
      "Epoch: 84 / 100 Iteration: 850 Train loss: 0.0004366\n",
      "Epoch: 84 / 100 Iteration: 850  Validation Acc: 0.92766\n",
      "Epoch: 85 / 100 Iteration: 851 Train loss: 0.0006973\n",
      "Epoch: 85 / 100 Iteration: 852 Train loss: 0.0005889\n",
      "Epoch: 85 / 100 Iteration: 853 Train loss: 0.0004179\n",
      "Epoch: 85 / 100 Iteration: 854 Train loss: 0.0006053\n",
      "Epoch: 85 / 100 Iteration: 855 Train loss: 0.0003368\n",
      "Epoch: 85 / 100 Iteration: 855  Validation Acc: 0.92766\n",
      "Epoch: 85 / 100 Iteration: 856 Train loss: 0.0003382\n",
      "Epoch: 85 / 100 Iteration: 857 Train loss: 0.0004071\n",
      "Epoch: 85 / 100 Iteration: 858 Train loss: 0.0012145\n",
      "Epoch: 85 / 100 Iteration: 859 Train loss: 0.0004482\n",
      "Epoch: 85 / 100 Iteration: 860 Train loss: 0.0004246\n",
      "Epoch: 85 / 100 Iteration: 860  Validation Acc: 0.92785\n",
      "Epoch: 86 / 100 Iteration: 861 Train loss: 0.0006772\n",
      "Epoch: 86 / 100 Iteration: 862 Train loss: 0.0005711\n",
      "Epoch: 86 / 100 Iteration: 863 Train loss: 0.0004021\n",
      "Epoch: 86 / 100 Iteration: 864 Train loss: 0.0005890\n",
      "Epoch: 86 / 100 Iteration: 865 Train loss: 0.0003217\n",
      "Epoch: 86 / 100 Iteration: 865  Validation Acc: 0.92766\n",
      "Epoch: 86 / 100 Iteration: 866 Train loss: 0.0003278\n",
      "Epoch: 86 / 100 Iteration: 867 Train loss: 0.0003937\n",
      "Epoch: 86 / 100 Iteration: 868 Train loss: 0.0011880\n",
      "Epoch: 86 / 100 Iteration: 869 Train loss: 0.0004369\n",
      "Epoch: 86 / 100 Iteration: 870 Train loss: 0.0004128\n",
      "Epoch: 86 / 100 Iteration: 870  Validation Acc: 0.92766\n",
      "Epoch: 87 / 100 Iteration: 871 Train loss: 0.0006585\n",
      "Epoch: 87 / 100 Iteration: 872 Train loss: 0.0005543\n",
      "Epoch: 87 / 100 Iteration: 873 Train loss: 0.0003874\n",
      "Epoch: 87 / 100 Iteration: 874 Train loss: 0.0005734\n",
      "Epoch: 87 / 100 Iteration: 875 Train loss: 0.0003083\n",
      "Epoch: 87 / 100 Iteration: 875  Validation Acc: 0.92766\n",
      "Epoch: 87 / 100 Iteration: 876 Train loss: 0.0003181\n",
      "Epoch: 87 / 100 Iteration: 877 Train loss: 0.0003820\n",
      "Epoch: 87 / 100 Iteration: 878 Train loss: 0.0011625\n",
      "Epoch: 87 / 100 Iteration: 879 Train loss: 0.0004260\n",
      "Epoch: 87 / 100 Iteration: 880 Train loss: 0.0004012\n",
      "Epoch: 87 / 100 Iteration: 880  Validation Acc: 0.92766\n",
      "Epoch: 88 / 100 Iteration: 881 Train loss: 0.0006417\n",
      "Epoch: 88 / 100 Iteration: 882 Train loss: 0.0005387\n",
      "Epoch: 88 / 100 Iteration: 883 Train loss: 0.0003738\n",
      "Epoch: 88 / 100 Iteration: 884 Train loss: 0.0005585\n",
      "Epoch: 88 / 100 Iteration: 885 Train loss: 0.0002954\n",
      "Epoch: 88 / 100 Iteration: 885  Validation Acc: 0.92785\n",
      "Epoch: 88 / 100 Iteration: 886 Train loss: 0.0003091\n",
      "Epoch: 88 / 100 Iteration: 887 Train loss: 0.0003714\n",
      "Epoch: 88 / 100 Iteration: 888 Train loss: 0.0011380\n",
      "Epoch: 88 / 100 Iteration: 889 Train loss: 0.0004148\n",
      "Epoch: 88 / 100 Iteration: 890 Train loss: 0.0003904\n",
      "Epoch: 88 / 100 Iteration: 890  Validation Acc: 0.92785\n",
      "Epoch: 89 / 100 Iteration: 891 Train loss: 0.0006258\n",
      "Epoch: 89 / 100 Iteration: 892 Train loss: 0.0005244\n",
      "Epoch: 89 / 100 Iteration: 893 Train loss: 0.0003615\n",
      "Epoch: 89 / 100 Iteration: 894 Train loss: 0.0005442\n",
      "Epoch: 89 / 100 Iteration: 895 Train loss: 0.0002844\n",
      "Epoch: 89 / 100 Iteration: 895  Validation Acc: 0.92785\n",
      "Epoch: 89 / 100 Iteration: 896 Train loss: 0.0003003\n",
      "Epoch: 89 / 100 Iteration: 897 Train loss: 0.0003612\n",
      "Epoch: 89 / 100 Iteration: 898 Train loss: 0.0011142\n",
      "Epoch: 89 / 100 Iteration: 899 Train loss: 0.0004043\n",
      "Epoch: 89 / 100 Iteration: 900 Train loss: 0.0003806\n",
      "Epoch: 89 / 100 Iteration: 900  Validation Acc: 0.92785\n",
      "Epoch: 90 / 100 Iteration: 901 Train loss: 0.0006107\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch: 90 / 100 Iteration: 902 Train loss: 0.0005101\n",
      "Epoch: 90 / 100 Iteration: 903 Train loss: 0.0003505\n",
      "Epoch: 90 / 100 Iteration: 904 Train loss: 0.0005312\n",
      "Epoch: 90 / 100 Iteration: 905 Train loss: 0.0002741\n",
      "Epoch: 90 / 100 Iteration: 905  Validation Acc: 0.92805\n",
      "Epoch: 90 / 100 Iteration: 906 Train loss: 0.0002919\n",
      "Epoch: 90 / 100 Iteration: 907 Train loss: 0.0003516\n",
      "Epoch: 90 / 100 Iteration: 908 Train loss: 0.0010912\n",
      "Epoch: 90 / 100 Iteration: 909 Train loss: 0.0003946\n",
      "Epoch: 90 / 100 Iteration: 910 Train loss: 0.0003713\n",
      "Epoch: 90 / 100 Iteration: 910  Validation Acc: 0.92785\n",
      "Epoch: 91 / 100 Iteration: 911 Train loss: 0.0005965\n",
      "Epoch: 91 / 100 Iteration: 912 Train loss: 0.0004970\n",
      "Epoch: 91 / 100 Iteration: 913 Train loss: 0.0003394\n",
      "Epoch: 91 / 100 Iteration: 914 Train loss: 0.0005189\n",
      "Epoch: 91 / 100 Iteration: 915 Train loss: 0.0002647\n",
      "Epoch: 91 / 100 Iteration: 915  Validation Acc: 0.92785\n",
      "Epoch: 91 / 100 Iteration: 916 Train loss: 0.0002838\n",
      "Epoch: 91 / 100 Iteration: 917 Train loss: 0.0003425\n",
      "Epoch: 91 / 100 Iteration: 918 Train loss: 0.0010684\n",
      "Epoch: 91 / 100 Iteration: 919 Train loss: 0.0003852\n",
      "Epoch: 91 / 100 Iteration: 920 Train loss: 0.0003625\n",
      "Epoch: 91 / 100 Iteration: 920  Validation Acc: 0.92785\n",
      "Epoch: 92 / 100 Iteration: 921 Train loss: 0.0005856\n",
      "Epoch: 92 / 100 Iteration: 922 Train loss: 0.0004847\n",
      "Epoch: 92 / 100 Iteration: 923 Train loss: 0.0003294\n",
      "Epoch: 92 / 100 Iteration: 924 Train loss: 0.0005077\n",
      "Epoch: 92 / 100 Iteration: 925 Train loss: 0.0002565\n",
      "Epoch: 92 / 100 Iteration: 925  Validation Acc: 0.92785\n",
      "Epoch: 92 / 100 Iteration: 926 Train loss: 0.0002762\n",
      "Epoch: 92 / 100 Iteration: 927 Train loss: 0.0003338\n",
      "Epoch: 92 / 100 Iteration: 928 Train loss: 0.0010460\n",
      "Epoch: 92 / 100 Iteration: 929 Train loss: 0.0003762\n",
      "Epoch: 92 / 100 Iteration: 930 Train loss: 0.0003555\n",
      "Epoch: 92 / 100 Iteration: 930  Validation Acc: 0.92805\n",
      "Epoch: 93 / 100 Iteration: 931 Train loss: 0.0005709\n",
      "Epoch: 93 / 100 Iteration: 932 Train loss: 0.0004727\n",
      "Epoch: 93 / 100 Iteration: 933 Train loss: 0.0003202\n",
      "Epoch: 93 / 100 Iteration: 934 Train loss: 0.0004981\n",
      "Epoch: 93 / 100 Iteration: 935 Train loss: 0.0002482\n",
      "Epoch: 93 / 100 Iteration: 935  Validation Acc: 0.92785\n",
      "Epoch: 93 / 100 Iteration: 936 Train loss: 0.0002690\n",
      "Epoch: 93 / 100 Iteration: 937 Train loss: 0.0003256\n",
      "Epoch: 93 / 100 Iteration: 938 Train loss: 0.0010244\n",
      "Epoch: 93 / 100 Iteration: 939 Train loss: 0.0003678\n",
      "Epoch: 93 / 100 Iteration: 940 Train loss: 0.0003479\n",
      "Epoch: 93 / 100 Iteration: 940  Validation Acc: 0.92805\n",
      "Epoch: 94 / 100 Iteration: 941 Train loss: 0.0005591\n",
      "Epoch: 94 / 100 Iteration: 942 Train loss: 0.0004614\n",
      "Epoch: 94 / 100 Iteration: 943 Train loss: 0.0003114\n",
      "Epoch: 94 / 100 Iteration: 944 Train loss: 0.0004873\n",
      "Epoch: 94 / 100 Iteration: 945 Train loss: 0.0002405\n",
      "Epoch: 94 / 100 Iteration: 945  Validation Acc: 0.92805\n",
      "Epoch: 94 / 100 Iteration: 946 Train loss: 0.0002620\n",
      "Epoch: 94 / 100 Iteration: 947 Train loss: 0.0003177\n",
      "Epoch: 94 / 100 Iteration: 948 Train loss: 0.0010035\n",
      "Epoch: 94 / 100 Iteration: 949 Train loss: 0.0003601\n",
      "Epoch: 94 / 100 Iteration: 950 Train loss: 0.0003401\n",
      "Epoch: 94 / 100 Iteration: 950  Validation Acc: 0.92805\n",
      "Epoch: 95 / 100 Iteration: 951 Train loss: 0.0005478\n",
      "Epoch: 95 / 100 Iteration: 952 Train loss: 0.0004507\n",
      "Epoch: 95 / 100 Iteration: 953 Train loss: 0.0003029\n",
      "Epoch: 95 / 100 Iteration: 954 Train loss: 0.0004764\n",
      "Epoch: 95 / 100 Iteration: 955 Train loss: 0.0002333\n",
      "Epoch: 95 / 100 Iteration: 955  Validation Acc: 0.92805\n",
      "Epoch: 95 / 100 Iteration: 956 Train loss: 0.0002553\n",
      "Epoch: 95 / 100 Iteration: 957 Train loss: 0.0003104\n",
      "Epoch: 95 / 100 Iteration: 958 Train loss: 0.0009836\n",
      "Epoch: 95 / 100 Iteration: 959 Train loss: 0.0003524\n",
      "Epoch: 95 / 100 Iteration: 960 Train loss: 0.0003325\n",
      "Epoch: 95 / 100 Iteration: 960  Validation Acc: 0.92805\n",
      "Epoch: 96 / 100 Iteration: 961 Train loss: 0.0005372\n",
      "Epoch: 96 / 100 Iteration: 962 Train loss: 0.0004405\n",
      "Epoch: 96 / 100 Iteration: 963 Train loss: 0.0002950\n",
      "Epoch: 96 / 100 Iteration: 964 Train loss: 0.0004663\n",
      "Epoch: 96 / 100 Iteration: 965 Train loss: 0.0002261\n",
      "Epoch: 96 / 100 Iteration: 965  Validation Acc: 0.92805\n",
      "Epoch: 96 / 100 Iteration: 966 Train loss: 0.0002489\n",
      "Epoch: 96 / 100 Iteration: 967 Train loss: 0.0003035\n",
      "Epoch: 96 / 100 Iteration: 968 Train loss: 0.0009641\n",
      "Epoch: 96 / 100 Iteration: 969 Train loss: 0.0003450\n",
      "Epoch: 96 / 100 Iteration: 970 Train loss: 0.0003251\n",
      "Epoch: 96 / 100 Iteration: 970  Validation Acc: 0.92805\n",
      "Epoch: 97 / 100 Iteration: 971 Train loss: 0.0005269\n",
      "Epoch: 97 / 100 Iteration: 972 Train loss: 0.0004308\n",
      "Epoch: 97 / 100 Iteration: 973 Train loss: 0.0002876\n",
      "Epoch: 97 / 100 Iteration: 974 Train loss: 0.0004569\n",
      "Epoch: 97 / 100 Iteration: 975 Train loss: 0.0002197\n",
      "Epoch: 97 / 100 Iteration: 975  Validation Acc: 0.92805\n",
      "Epoch: 97 / 100 Iteration: 976 Train loss: 0.0002427\n",
      "Epoch: 97 / 100 Iteration: 977 Train loss: 0.0002968\n",
      "Epoch: 97 / 100 Iteration: 978 Train loss: 0.0009452\n",
      "Epoch: 97 / 100 Iteration: 979 Train loss: 0.0003381\n",
      "Epoch: 97 / 100 Iteration: 980 Train loss: 0.0003181\n",
      "Epoch: 97 / 100 Iteration: 980  Validation Acc: 0.92805\n",
      "Epoch: 98 / 100 Iteration: 981 Train loss: 0.0005170\n",
      "Epoch: 98 / 100 Iteration: 982 Train loss: 0.0004213\n",
      "Epoch: 98 / 100 Iteration: 983 Train loss: 0.0002806\n",
      "Epoch: 98 / 100 Iteration: 984 Train loss: 0.0004478\n",
      "Epoch: 98 / 100 Iteration: 985 Train loss: 0.0002139\n",
      "Epoch: 98 / 100 Iteration: 985  Validation Acc: 0.92805\n",
      "Epoch: 98 / 100 Iteration: 986 Train loss: 0.0002370\n",
      "Epoch: 98 / 100 Iteration: 987 Train loss: 0.0002902\n",
      "Epoch: 98 / 100 Iteration: 988 Train loss: 0.0009266\n",
      "Epoch: 98 / 100 Iteration: 989 Train loss: 0.0003314\n",
      "Epoch: 98 / 100 Iteration: 990 Train loss: 0.0003114\n",
      "Epoch: 98 / 100 Iteration: 990  Validation Acc: 0.92805\n",
      "Epoch: 99 / 100 Iteration: 991 Train loss: 0.0005080\n",
      "Epoch: 99 / 100 Iteration: 992 Train loss: 0.0004122\n",
      "Epoch: 99 / 100 Iteration: 993 Train loss: 0.0002739\n",
      "Epoch: 99 / 100 Iteration: 994 Train loss: 0.0004392\n",
      "Epoch: 99 / 100 Iteration: 995 Train loss: 0.0002081\n",
      "Epoch: 99 / 100 Iteration: 995  Validation Acc: 0.92805\n",
      "Epoch: 99 / 100 Iteration: 996 Train loss: 0.0002315\n",
      "Epoch: 99 / 100 Iteration: 997 Train loss: 0.0002837\n",
      "Epoch: 99 / 100 Iteration: 998 Train loss: 0.0009082\n",
      "Epoch: 99 / 100 Iteration: 999 Train loss: 0.0003248\n",
      "Epoch: 99 / 100 Iteration: 1000 Train loss: 0.0003049\n",
      "Epoch: 99 / 100 Iteration: 1000  Validation Acc: 0.92805\n"
     ]
    }
   ],
   "source": [
    "e = 100\n",
    "iteration = 0\n",
    "\n",
    "with tf.Session() as sess:\n",
    "    \n",
    "    # 1. Start session\n",
    "    sess.run(tf.global_variables_initializer() )\n",
    "    \n",
    "    # 2. Do each epoch\n",
    "    for i in range(e):\n",
    "        \n",
    "        #3. Do each batch\n",
    "        for j, k in get_batches(train_x, train_y):\n",
    "            \n",
    "            #4. Input data\n",
    "            feed = {inputs_: j, labels_: k}\n",
    "                        \n",
    "            #5. Do loss\n",
    "            loss, _ = sess.run([cost, optimizer], feed_dict=feed)\n",
    "            \n",
    "            #6. Increment counter \n",
    "            iteration += 1\n",
    "            \n",
    "            #7. Print results\n",
    "            print(\"Epoch: {} / {}\".format( i, e),\n",
    "                 \"Iteration: {}\".format( iteration ),\n",
    "                 \"Train loss: {:.7f}\".format( loss ))\n",
    "            \n",
    "            #8. Do Validation\n",
    "            if iteration % 5 == 0:\n",
    "                feed = {inputs_: val_x, labels_: val_y}\n",
    "            \n",
    "                val_acc = sess.run(accuracy, feed_dict=feed)\n",
    "                \n",
    "                print(\"Epoch: {} / {}\".format( i, e),\n",
    "                 \"Iteration: {} \".format( iteration),\n",
    "                 \"Validation Acc: {:.5f}\".format(val_acc) )\n",
    "        \n",
    "    saver.save(sess, \"checkpoints/a.ckpt\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Testing\n",
    "\n",
    "Below you see the test accuracy. You can also see the predictions returned for images."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "INFO:tensorflow:Restoring parameters from checkpoints\\a.ckpt\n",
      "Test accuracy: 0.9271\n"
     ]
    }
   ],
   "source": [
    "# 94% with 100 - 200 epochs  no other changes\n",
    "\n",
    "with tf.Session() as sess:\n",
    "    saver.restore(sess, tf.train.latest_checkpoint('checkpoints'))\n",
    "    \n",
    "    feed = {inputs_: test_x,\n",
    "            labels_: test_y}\n",
    "    test_acc = sess.run(accuracy, feed_dict=feed)\n",
    "    print(\"Test accuracy: {:.4f}\".format(test_acc))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "INFO:tensorflow:Restoring parameters from checkpoints\\a.ckpt\n",
      "Test accuracy: 0.9271\n"
     ]
    }
   ],
   "source": [
    "# 89% with 300 epochs dropout\n",
    "\n",
    "with tf.Session() as sess:\n",
    "    saver.restore(sess, tf.train.latest_checkpoint('checkpoints'))\n",
    "    \n",
    "    feed = {inputs_: test_x,\n",
    "            labels_: test_y}\n",
    "    test_acc = sess.run(accuracy, feed_dict=feed)\n",
    "    print(\"Test accuracy: {:.4f}\".format(test_acc))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "collapsed": true,
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "from scipy.ndimage import imread"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\"vgg\" object already exists.  Will not create again.\n"
     ]
    }
   ],
   "source": [
    "# Run this cell if you don't have a vgg graph built\n",
    "if 'my_vgg' in globals():\n",
    "    print('\"vgg\" object already exists.  Will not create again.')\n",
    "else:\n",
    "    #create vgg\n",
    "    with tf.Session() as sess:\n",
    "        input_ = tf.placeholder(tf.float32, [None, 224, 224, 3])\n",
    "        vgg = vgg16.Vgg16()\n",
    "        vgg.build(input_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "collapsed": true,
    "scrolled": false
   },
   "outputs": [],
   "source": [
    "#test_img_path = 'flower_photos/daisy/5547758_eea9edfd54_n.jpg'\n",
    "#test_img = imread(test_img_path)\n",
    "#plt.imshow(test_img)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "INFO:tensorflow:Restoring parameters from checkpoints\\a.ckpt\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n/QUAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x2c9cabb4ac8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "with tf.Session() as sess:\n",
    "    #image = X[2000]\n",
    "    \n",
    "    #plt.imshow(image)\n",
    "    \n",
    "    image = scipy.misc.imread('extra-images/' + \"1.jpg\")\n",
    "    \n",
    "    image = scipy.misc.imresize(image, [224, 224])\n",
    "    \n",
    "    plt.imshow(image)\n",
    "    \n",
    "    image = image.reshape((1, 224, 224, 3))\n",
    "\n",
    "\n",
    "    feed_dict = {input_: image}\n",
    "    \n",
    "    ## KEY\n",
    "    code = sess.run(my_vgg.relu6, feed_dict=feed_dict)\n",
    "        \n",
    "saver = tf.train.Saver()\n",
    "with tf.Session() as sess:\n",
    "    saver.restore(sess, tf.train.latest_checkpoint('checkpoints'))\n",
    "    \n",
    "    feed = {inputs_: code}\n",
    "    prediction = sess.run(predicted, feed_dict=feed).squeeze()\n",
    "    \n",
    "    top5 = sess.run(tf.nn.top_k(tf.constant(prediction), k=5, sorted=True))\n",
    "    \n",
    "    # print(prediction)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "TopKV2(values=array([ 1.,  0.,  0.,  0.,  0.], dtype=float32), indices=array([14,  0,  1,  2,  3]))\n",
      "1.0\n",
      "Stop\n",
      "Speed limit (20km/h)\n",
      "Speed limit (30km/h)\n",
      "Speed limit (50km/h)\n",
      "Speed limit (60km/h)\n"
     ]
    }
   ],
   "source": [
    "print(top5)\n",
    "print(max(prediction))\n",
    "\n",
    "for i in range(5):\n",
    "    print(classes[top5.indices[i]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[1.0, 0.0, 0.0, 0.0, 0.0]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nQVYqJ44AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x2c9cae2f898>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#print(max(prediction))\n",
    "\n",
    "chart_i = [i for i in classes[top5.indices]]\n",
    "chart_v = [i for i in top5.values]\n",
    "print(chart_v)\n",
    "\n",
    "plt.barh(np.arange(5), chart_v)\n",
    "\n",
    "_ = plt.yticks(np.arange(5), chart_i)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
